A24182. 素数对
填空题
中等
知识点
题目描述
素数对
题目描述
两个相差为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参考答案
#include <bits/stdc++.h>
using namespace std;
bool isPrime(int n)//求大于等于2的整数n是不是质数
{
for(int i = 2; i <= sqrt(n); ++i)
if(n % i == 0)
return false;
return true;
}
int main()
{
int n;
cin >> n;
bool isEmpty = true;
for(int i = 4; i <= n; ++i)//i为较大的数字,较小的数字为i-2
{
if(isPrime(i) && isPrime(i-2))//如果两个数都是质数
{
isEmpty = false;
cout << i-2 << ' ' << i << endl;
}
}
if(isEmpty)
cout << "empty";
return 0;
}
上一题
下一题