任务描述
编程输入整数M(M<20000)和N(N<10),输出大于M的前N个孪生素数对。孪生素数是指差为2的两个素数。
输入样例:
100 5
输出样例:
101,103
107,109
137,139
149,151
179,181
任务描述
编程输入整数M(M<20000)和N(N<10),输出大于M的前N个孪生素数对。孪生素数是指差为2的两个素数。
输入样例:
100 5
输出样例:
101,103
107,109
137,139
149,151
179,181
那我直接把代码贴出来,帮助你理解下
#include <stdio.h>
#include <math.h>
#define MAX 20000
int is_prime(int n) {
int i, limit = sqrt(n);
if (n <= 1) return 0;
for (i = 2; i <= limit; i++) {
if (n % i == 0) return 0;
}
return 1;
}
int main() {
int m, n, i, j, cnt = 0;
scanf("%d%d", &m, &n);
for (i = m + 1; i < MAX; i++) {
if (is_prime(i) && is_prime(i + 2)) {
cnt++;
printf("%d,%d\n", i, i + 2);
if (cnt == n) break;
}
}
return 0;
}