实现输入整数 M 和 N,并输出大于 M 的前 N 个孪生素数对

题目描述

编程输入整数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 <stdbool.h>

bool isPrime(int num) {
    if (num <= 1)
        return false;
        
    for (int i = 2; i * i <= num; i++) {
        if (num % i == 0)
            return false;
    }
    
    return true;
}

void findTwinPrimes(int M, int N) {
    int count = 0;
    int num = M + 1;
    
    while (count < N) {
        if (isPrime(num) && isPrime(num + 2)) {
            printf("%d,%d\n", num, num + 2);
            count++;
        }
        num++;
    }
}

int main() {
    int M, N;
    printf("请输入整数M和N(以空格分隔):");
    scanf("%d %d", &M, &N);
    
    findTwinPrimes(M, N);
    
    return 0;
}

在上述代码中,isPrime 函数用于判断一个数是否为素数。findTwinPrimes 函数根据输入的 M 和 N,找到大于 M 的前 N 个孪生素数对并输出。main 函数用于接收用户输入的 M 和 N,并调用 findTwinPrimes 函数。

您可以直接运行上述代码,根据提示输入 M 和 N 的值,即可输出相应的孪生素数对。

运行截图

图片[1]-实现输入整数 M 和 N,并输出大于 M 的前 N 个孪生素数对-QQ沐编程

© 版权声明
THE END
喜欢就支持一下吧
点赞6赞赏 分享