测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题