素数对
- C语言代码
- C++ 代码
- Java代码
- Python代码
💐The Begin💐点点关注,收藏不迷路💐 |
两个相差为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 <stdio.h>
#include <stdbool.h>
// 判断一个数是否为素数
bool isPrime(int num) {
if (num < 2) return false;
for (int i = 2; i * i <= num; i++) { // 只需要判断到根号num
if (num % i == 0) return false;
}
return true;
}
int main() {
int n;
scanf(“%d”, &n);
bool found = false;
for (int i = 2; i <= n - 2; i++) { // 从2开始遍历到n-2
if (isPrime(i) && isPrime(i + 2) && (i + 2) <= n) { // 判断i和i+2是否都是素数且不超过n
printf(“%d %d\n”, i, i + 2);
found = true;
}
}
if (!found) printf(“empty”);
return 0;
}
C++ 代码
#include <iostream
>
#include <cmath
>
using namespace std;
// 判断一个数是否为素数
bool isPrime(int num) {
if (num < 2) return false;
for (int i = 2; i <= sqrt(num); i++) { // 循环判断到根号num
if (num % i == 0) return false;
}
return true;
}
int main() {
int n;
cin >> n;
bool found = false;
for (int i = 2; i <= n - 2; i++) { // 从2开始遍历到n-2
if (isPrime(i) && isPrime(i + 2) && (i + 2) <= n) { // 判断i和i+2是否都是素数且不超过n
cout << i << " " << i + 2 << endl;
found = true;
}
}
if (!found) cout << “empty”;
return 0;
}
Java代码
import java.util.Scanner;
public class PrimePairs {
// 判断一个数是否为素数
static boolean isPrime(int num) {
if (num < 2) return false;
for (int i = 2; i * i <= num; i++) { // 循环判断到根号num
if (num % i == 0) return false;
}
return true;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
boolean found = false;
for (int i = 2; i <= n - 2; i++) { // 从2开始遍历到n-2
if (isPrime(i) && isPrime(i + 2) && (i + 2) <= n) { // 判断i和i+2是否都是素数且不超过n
System.out.println(i + " " + (i + 2));
found = true;
}
}
if (!found) System.out.println(“empty”);
}
}
Python代码
import math
//判断一个数是否为素数
def is_prime(num):
if num < 2:
return False
for i in range(2, int(math.sqrt(num)) + 1): // 循环判断到根号num
if num % i == 0:
return False
return True
n = int(input())
found = False
for i in range(2, n - 1): // 从2开始遍历到n-2
if is_prime(i) and is_prime(i + 2) and (i + 2) <= n: // 判断i和i+2是否都是素数且不超过n
print(i, i + 2)
found = True
if not found:
print(“empty”)
💐The End💐点点关注,收藏不迷路💐 |