2017北大信科夏令营上机考试 A:判决素数个数
A:判决素数个数 判决素数个数
总时间限制: 1000ms 内存限制: 65536kB
描述
输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。
输入
两个整数X和Y(1 <= X,Y <= 105)。
输出
输出一个整数,表示X,Y之间的素数个数(包括X和Y)。
样例输入
1 100
样例输出
25
思路
使用Prime(n)函数判断n是否为素数,再用for循环遍历n到m依次检查每个数是否为素数。
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
bool Prime(int n)
{
if (n == 1) //特判
{
return false;
}
int sqr = (int)sqrt(n);
for (int i = 2; i <= sqr; i++)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
int main()
{
int n, m;
cin >> n >> m;
if (n > m)
{
swap(n, m);
}
int ans = 0;
for (int i = n; i <= m; i++)
{
if (Prime(i))
{
ans++;
}
}
cout << ans << endl;
return 0;
}