2017北大信科夏令营上机考试 A:判决素数个数

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;
}

猜你喜欢

转载自blog.csdn.net/qq_39504764/article/details/89519696