题目来源:码蹄集
题目描述:
Python代码:
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def find_resonant_pairs(n, k):
prime_pairs = []
for i in range(2, n - k + 1):
if is_prime(i) and is_prime(i + k):
prime_pairs.append((i, i + k))
return prime_pairs
n, k = map(int, input().split())
pairs = find_resonant_pairs(n, k)
if len(pairs) == 0:
print("empty")
else:
for pair in pairs:
print(pair[0], pair[1])
C++代码:
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
bool is_prime(int n) {
if (n < 2) return false;
for (int i = 2; i <= sqrt(n); ++i) {
if (n % i == 0) return false;
}
return true;
}
vector<pair<int, int>> find_resonant_pairs(int n, int k) {
vector<pair<int, int>> prime_pairs;
for (int i = 2; i <= n - k; ++i) {
if (is_prime(i) && is_prime(i + k)) {
prime_pairs.push_back({i, i + k});
}
}
return prime_pairs;
}
int main() {
int n, k;
cin >> n >> k;
vector<pair<int, int>> pairs = find_resonant_pairs(n, k);
if (pairs.empty()) {
cout << "empty" << endl;
} else {
for (auto &pair : pairs) {
cout << pair.first << " " << pair.second << endl;
}
}
return 0;
}
Java代码:
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static boolean isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i <= Math.sqrt(n); ++i) {
if (n % i == 0) return false;
}
return true;
}
public static ArrayList<int[]> findResonantPairs(int n, int k) {
ArrayList<int[]> primePairs = new ArrayList<>();
for (int i = 2; i <= n - k; ++i) {
if (isPrime(i) && isPrime(i + k)) {
primePairs.add(new int[]{i, i + k});
}
}
return primePairs;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
ArrayList<int[]> pairs = findResonantPairs(n, k);
if (pairs.isEmpty()) {
System.out.println("empty");
} else {
for (int[] pair : pairs) {
System.out.println(pair[0] + " " + pair[1]);
}
}
}
}