栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1842 Prime Distance

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1842 Prime Distance

#include <stdio.h>#include <string.h>int  pnum;int  prime[30000],lr[1000001];bool isprime(int  n){    if(n==1)        return false;    for(int i=0;i<pnum&′[i]*prime[i]<=n;i++)        if(n%prime[i]==0)         return false;    return true;}void getprime(){    prime[0]=2;    prime[1]=3;    pnum=2;    for(int i=5;i<48000;i++)    {        if(isprime(i)) prime[pnum++]=i;    }}void slove(int  l,int  r){    memset(lr,0,sizeof(lr));    for(int i=0;i<pnum;i++)    {        int s=(l-1)/prime[i]+1;        int t=r/prime[i];        for(int j=s;j<=t;j++)        { if(j>1)     lr[j*prime[i]-l]=1;        }    }    if(l==1)        lr[0]=1;    int k=-1,maxn=-1,minn=99999999;    long long upx=0,upy=0,downx=0,downy=0;    for(int i=0;i<=r-l;i++)    {        if(lr[i]==0)        { if(k==-1) {     k=i; } else {     if(i-k<minn)     {         minn=i-k;         upx=k;         upy=i;     }     if(i-k>maxn)     {         maxn=i-k;         downx=k;         downy=i;     }     k=i; }        }    }    if(maxn==-1)        printf("There are no adjacent primes.n");    else        printf("%lld,%lld are closest, %lld,%lld are most distant.n",upx+l,upy+l,downx+l,downy+l);}int  main(){    getprime();    int L,U;    while(scanf("%d %d",&L,&U)!=EOF)    {        slove(L,U);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378054.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号