题目来源:http://noi.openjudge.cn/ch0113/10/
10:判决素数个数
总时间限制: 1000ms 内存限制: 65536kB
描述
输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。
输入
两个整数X和Y(1 <= X,Y <= 105)。
输出
输出一个整数,表示X,Y之间的素数个数(包括X和Y)。
样例输入
1 100
样例输出
25
-----------------------------------------------------
解题思路
1不是素数!1不是素数!1不是素数!
另外题目有坑,没说输入的第一个数一定要小于等于第二个数。
-----------------------------------------------------
代码
#include<iostream>
#include<utility>
#include<math.h>
using namespace std;
bool sushu(int n)
{
int i = 2;
if (n<=1)
{
return false;
}
if (n == 2 || n == 3)
{
return true;
}
for (i=2; i<=((int)sqrt(n)); i++)
{
if(n%i == 0)
{
return false;
}
}
return true;
}
int main()
{
int low, high, i, cnt=0;
cin >> low >> high;
if (low > high)
{
swap(low, high);
}
for (i=low; i<=high; i++)
{
if (sushu(i))
{
cnt ++;
}
}
cout << cnt;
}