此题有多种做法,直接数也行(枚举所有数然后判断有多少质数);或者维护一个质数列表,输入两个数以后搜索有几个质数。我用的是前者
#include<iostream>
#include<cmath>
using namespace std;
int IsPrime(long Num);
int main()
{
long int n,m,sum;
while(cin>>n>>m)
{
sum=0;
for(;n<=m;n++)
if(IsPrime(n)) sum++;
cout<<sum<<endl;
}
return 0;
}
int IsPrime(long Num)
{
if(Num<=2) return Num-1;
if(Num%2 == 0) return 0;
int s = (int)sqrt((double)Num);
int t=3;
for(;t<=s;t+=2)
if(Num%t == 0) return 0;
return 1;
}
#include<cmath>
using namespace std;
int IsPrime(long Num);
int main()
{
long int n,m,sum;
while(cin>>n>>m)
{
sum=0;
for(;n<=m;n++)
if(IsPrime(n)) sum++;
cout<<sum<<endl;
}
return 0;
}
int IsPrime(long Num)
{
if(Num<=2) return Num-1;
if(Num%2 == 0) return 0;
int s = (int)sqrt((double)Num);
int t=3;
for(;t<=s;t+=2)
if(Num%t == 0) return 0;
return 1;
}