题目描述
两个相差为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
数据范围与提示
分类标签
[函数]
C++题解代码
#include <bits/stdc++.h>
using namespace std;
int a;
bool b;
bool fn2(int y) {
int d = sqrt(y);
for (int j = 2; j <= d; j++) {
if ((y%j) == 0) {
return false;
}
}
return true;
}
// The main procedure
int main() {
cin>>a;
b = true;
for (int i = 2; i <= (a-2); i++) {
if (fn2(i)) {
if (fn2((i+2))) {
if (b) {
b = false;
} else {
cout<<'\n';
}
cout<<i;
cout<<" ";
cout<<(i+2);
}
}
}
if (b) {
cout<<"empty";
}
return 0;
}
Blockly题解代码图片