WA,为什么啊,找不出来错误啊

UVA10140 Prime Distance

```c #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ long long l,r,v[2000005],p[2000005],x=1,book[2000005]; void creat() { long long i,n,j; n=sqrt(r); for(i=2;i<=n;i++) { if(book[i]!=0) continue; v[x]=i; x++; for(j=i;j<=n/i;j++) { book[i*j]=1; } } /*int i,j,flag=0; for(i=2;i<=sqrt(r);i++) { if(i==2||i==3) { v[x]=i; x++; } else { for(j=2;j<=sqrt(i);j++) { if(i%j==0) { flag=1; break; } } if(flag==0) { v[x]=i; x++; } } flag=0; }*/ } int main(int argc, char *argv[]) { long long i,e,t,flag2=0,ans=1,maxn=-9999999,minn=99999999,st,en,st2,en2; while(scanf("%lld %lld",&l,&r)!=EOF) { creat(); for(e=l;e<=r;e++) { if(e==1) continue; if(e==2||e==3) { p[ans]=e; ans++; } else { for(t=1;t<=x-1;t++) { if(e%v[t]==0&&e!=v[t]) { flag2=1; break; } } if(flag2==0) { p[ans]=e; ans++; } flag2=0; } } for(e=1;e<=ans-2;e++) { if(p[e+1]-p[e]>maxn) { maxn=p[e+1]-p[e]; st=p[e]; en=p[e+1]; } if(p[e+1]-p[e]<minn) { minn=p[e+1]-p[e]; st2=p[e]; en2=p[e+1]; } } if(ans==1||ans==2) printf("There are no adjacent primes.\n"); else printf("%lld,%lld are closest, %lld,%lld are most distant.\n",st2,en2,st,en); memset(v,0,sizeof(v)); memset(p,0,sizeof(p)); memset(book,0,sizeof(book)); ans=1; x=1; } return 0; } ```
by limarks @ 2018-10-05 09:38:30


|