素数个数
【问题描述】素数是除1和本身以外,不能被其他任何整数整除的整数。要求用户输入两个正整数 n 、 m ,其中(1
【输出形式】 n ~ m 之间(包含 n , m 本身)的素数个数。【样例输入】2 10
【样例输出】4
刚学 真的不会做!!
#include <iostream>
#include <cmath>
using namespace std;
const int maxn=100005;
int sushu[maxn]={0};
void intt(){//筛法求素数
sushu[0]=1;
sushu[1]=1;
for(int i=2; i<=maxn-5; i++)
{
if(sushu[i]==0)
{
for(int j=i+i; j<=maxn-5; j+=i)
{
sushu[j]=1;
}
}
}
}
int main(int argc, char *argv[]) {
intt();
int x,y;
cin>>x>>y;
int count=0;
if(x>y)
{
swap(x,y);
}
for(int i=x; i<=y; i++)
{
if(sushu[i]==0)
{
count++;
}
}
cout<<count<<endl;
return 0;
}
这道题可以用筛法做。