题目描述
两个相差为 2 的素数称为素数对,如 5 和 7,17 和 19 等,本题目要求找出所有两个数均不大于 n 的 素数对。
输入
一个正整数 n。1 <= n <= 10000。
输出
所有小于等于 n 的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数 对,输出 empty。
样例输入
100
样例输出
3 5
5 7
11 13
17 19
29 31
41 43
59 61
71 73
题解
cpp
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
bool isprime(int x)
{
if (x < 2)
return false;
for (int i = 2;i < x;i++)
{
if (x % i == 0)
return false;
}
return true;
}
int main() {
int n,t,c; cin >> n;
for (int i = 1;i <= n - 2;i++)
{
if(isprime(i))
{
if (isprime(i + 2))
{
cout << i << " " << i + 2 << endl;
t = 1;
}
}
}
if (t == 0)
cout << "empty";
return 0;
}
本文最后更新于2022年4月11日,已超过 2 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!