View Code of Problem 103

#include<stdio.h>
#include<math.h>
int sushu(int a){
	if(a==1||a==0) 
	return 0;    
	for(int i=2;i<=sqrt(a);i++){
		if(a%i==0)
		return 0;
	}
	return 1;
} 

int main(){
	  int a,b,sum=0,x[1000001];
	  for(int i=0;i<1000001;i++){            //降低时间复杂度,空间换时间  
	  		if(sushu(i)==1) 
			  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]);
	  }
} 

Double click to view unformatted code.


Back to problem 103