#include<stdio.h> #include<math.h> int isSu(int n){ if(n<2) return 0; int i; for(i = 2;i <= sqrt(n); i++){ if(n%i==0) return 0; } return 1; } int main(){ int i,a,b,x[1000001]; int sum = 0; for(i = 0;i < 1000001; i++){ if(isSu(i)) sum++; //计算每个数前面共有多少个素数 x[i] = sum; } while(scanf("%d %d",&a,&b)!=EOF){ if(x[a]>x[a-1]) //如果第a个数是个素数 printf("%d\n",x[b]-x[a]+1); else printf("%d\n",x[b]-x[a]); } return 0; } |
Double click to view unformatted code.