孪生素数问题,各种定义函数

img


定于函数char prime(int n),判断n是否为素数,若是返回1,否则返回0
定义函数unsigned int input unit ()输入一个不小于2的无符号正整数,并返回该数值,若不符合,则重新输入直至输入数据合法

#include <stdio.h>

// 判断n是否为素数
char prime(int n) {
    int i;

    if (n < 2) return 0;  // 1和小于1的数不是素数

    for (i = 2; i < n; ++i) 
        if (n % i == 0) 
            return 0;  // n能被除了1和本身以外的数整除,不是素数

    return 1;  // 如果for循环中没有返回0,则n是素数
}

// 输入一个不小于2的无符号正整数
unsigned int input_unit() {
    unsigned int n;

    do {
        printf("请输入一个不小于2的无符号正整数:");
        scanf("%u", &n);
    } while (n < 2);

    return n;
}

int main() {
    unsigned int n;

    n = input_unit();  // 输入一个不小于2的无符号正整数
    if (prime(n) == 1)
        printf("%u是素数\n", n);
    else
        printf("%u不是素数\n", n);

    return 0;
}

在程序中,prime函数用于判断n是否为素数,如果是素数则返回1,否则返回0。input_unit函数用于输入一个不小于2的无符号正整数,并将其返回。

在main函数中,先调用input_unit函数输入一个数字n,然后调用prime函数判断n是否是素数,并输出判断结果。

希望对你有帮助!请给我一个采纳,谢谢啦