C语言。输入数据有多组,每组占一行,仅包含一个大于1的正整数。

定义一个函数,判断指定的数是否素数。是素数返回整数1,不是则返回0。数据的输入输出必须在主函数中完成,函数只用于判断和返回结果。

int isPrime(unsigned long n) {
    if (n <= 3) {
        return n > 1;
    } else if (n % 2 == 0 || n % 3 == 0) {
        return 0;
    } else {
        for (unsigned short i = 5; i * i <= n; i += 6) {
            if (n % i == 0 || n % (i + 2) == 0) {
                return 0;
            }
        }
        return 1;
    }
}

int main()
{
    int n;
    while(~scanf("%d",&n))
        if(isPrime(n))printf("%d是素数\n", n);
        else printf("%d不是素数\n", n);
}
温馨提示:答案为网友推荐,仅供参考
相似回答