【问题描述】
两个相差为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 <cstdio> #include <iostream> #include <cmath> using namespace std;
bool sh(int x) { int j = 2; while ((j<=sqrt(x)) && (x%j!=0)) { j++; }
return j>sqrt(x); }
int main() { int n; bool f = 0; cin >> n;
for (int i=3; i<=n-2; i++) { if (sh(i) && sh(i+2)) { cout << i << " " << i+2 << endl; // 如果存在素数对则输出 f = 1; // 标记为1 } } if (!f) { cout << "empty" << endl; // 不存在素数对则输出empty }
return 0; } |
该博客主要介绍了如何找出所有两个数均不大于给定整数n的素数对,即相差为2的素数组合,例如5和7,17和19等。内容包括输入输出格式说明以及样例展示。
1367

被折叠的 条评论
为什么被折叠?



