孪生素数对 编程输入整数M(M<20000)和N(N<10),输出大于M的前N个孪生素数对。孪生素数是指差为2的两个素数。

任务描述
编程输入整数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;
}
#include <stdio.h>
int isprime(int n) 
{
    if (n <= 1) 
       return 0;
    for (int i = 2; i*i<=n; i++)
        if (n % i == 0) 
          return 0;
    return 1;
}
 
int main() 
{
    int m, n, count =0;
    scanf("%d%d", &m, &n);
    while(count < n)
    {
        if (isprime(m) && isprime(m + 2))
        {
            count++;
            printf("%d,%d\n", m, m + 2);
            m++;
        }
    }
 
    return 0;
}