0
点赞
收藏
分享

微信扫一扫

PAT 乙级 1007

诗尚凝寒 2022-02-19 阅读 33

PAT 乙级 1007


1007 素数对猜想 (20 分)

题目描述
“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N( <10^5 ),请计算不超过N的满足猜想的素数对的个数。

输入格式
输入在一行给出正整数N。

输出格式
在一行中输出不超过N的满足猜想的素数对的个数。

输入样例:
20

输出样例
4

分析
遍历大于2小于n的每一个数,如果这个数和这个数减2都是素数,则count++,最后输出count即可。

代码

#include <iostream>
using namespace std;

bool is_prime(int x)
{
    if (x < 2) return false;
    for (int i = 2; i <= x / i; i ++ )
        if (x % i == 0)
            return false;
    return true;
}

int main()
{
	int n;
	cin >> n;
    
    int count = 0;
    for(int i = 2;i <= n;i ++ )
    {
        if(is_prime(i) && is_prime(i - 2))
            count ++;
    }
    
	cout << count << endl;
	return 0;
}
举报

相关推荐

0 条评论