View Code of Problem 103

#include<stdio.h>
#include<math.h>
int isrish(int a){
	int i;
	if(a==1 || a==0) return 1;
 	for(i=2;i<=sqrt(a);i++){
	 	if(a%i==0){
	 		return 1;
	 	}
	 }
	 return 0;
}
int main()
{
	int i,a,b,sum,x[1000001];
	sum=0;
	for(i=0;i<1000001;i++){ 
		if(isrish(i)==0) sum++;
		x[i] = sum;                 //0到i区间的富人数 
	}
	while(scanf("%d%d",&a,&b)!=EOF)
	{
		if(x[a]>x[a-1]){
			printf("%d\n",x[b]-x[a]+1);
		}
		else printf("%d\n",x[b]-x[a]);
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 103