题目描述:
素数是指大于1,且只能被1和它自身整除的正整数。现给定一个范围,请输出在此范围中素数的个数。
输入:
测试数据有多组,每组单独占一行,包括两个正整数m和n(2≤m,n≤10000),中间用空格分隔。请输出m和n之间的素数的个数(包括m和n)。
输出:
对于每组输入数据,输出对应的素数个数,每组单独占一行。
样例输入:
2 5
25 30
样例输出:
3
1
#include<stdio.h>
#include<math.h>
int main(){
int m,n;
while(scanf("%d %d",&m,&n)!=EOF){
int i,j,t;
if(m>n){
t=m;
m=n;
n=t;
}
int prime[10001];
int count=0;
for(i=2;i<=10000;i++){
prime[i]=1;
}
for(i=2;i<=sqrt(10000);i++){
if(prime[i]){
for(j=i*i;j<=10000;j+=i){
prime[j]=0;
}
}
}
for(i=m;i<=n;i++){
if(prime[i]){
count++;
}
}
printf("%d\n",count);
}
}