这个题要注意啦 1 在这个题中也是素数。 唉 害我苦苦找了这么久 后来人注意就行了
#include <stdio.h> #define num 100010 long long mark[num+10]={0},visit[num+10]={1},t=0,rec[num+10]; int main() { for(long long i=2;i<=num;i++) { if(!visit[i]) mark[t++]=i; for(long long j=0;j<t&&i*mark[j]<=num;j++) { visit[i*mark[j]]=1; if(i%mark[j]==0) break; } } long long sum=0; for(long long i=0;i<=num;i++) { if(!visit[i]) sum++; rec[i]=sum; } long long n,m,t=1,temp; while(~scanf("%lld %lld",&m,&n)) { printf("Case %%%lld:%lld\n",t++,rec[n]-rec[m-1]); } return 0; }
#include <stdio.h> #include <math.h> #define num 100005 int main() { int flag[num],rec[num],sum=0,cnt=0,m,n; flag[0]=1; for(int i=2;i<=num/2;i++) if(!flag[i]&&i<=sqrt(num)) for(int j=i*i;j<=num;j+=i) flag[j]=1; for(int i=0;i<=num-5;i++){ if(!flag[i]) sum++; rec[i]=sum; } while(scanf("%d %d",&m,&n)!=EOF) printf("Case %%%d:%d\n", ++cnt,rec[n]-rec[m-1]); }
原文地址:http://blog.csdn.net/su20145104009/article/details/45338031