问题描述
编程求正整数 M 与 N 之间的所有素数的个数。( 1≤M≤N≤30000 )
输入
输入只有一行,包括 2 个整数 M,N,之间用一个空格分开。
输出
输出只有一行(这意味着末尾有一个回车符号),包括 1个整数。
#include<iostream>
using namespace std;
int prime(int x)
{
if(x==1)
{
return 0;
}
if(x==2||x==3)
{
return x;
}
for(int i=2;i*i<=x;i++)
{
if(x%i==0)
{
return 0;
}
}
return x;
}
int main()
{
int a,b;
cin>>a>>b;
int sum=0;
for(int i=a;i<=b;i++)
{
if(prime(i)==i)
sum++;
}
cout<<sum;
return 0;
}