c - 判断给定的数字是否是质数

标签 c primes

我正在尝试查找 5915587277 是否为素数。 这个数字实际上是质数,我希望我的程序能做到这一点。 当我运行这个程序时,它说它不是素数,它的除数是 199。

#include<stdio.h>

int main()
{
    long n = 0;
    long i = 0;
    printf("Enter Number: ");
    scanf("%ld", &n);
    long m = n/2;

    if(n%2 == 0)
    {
        printf("Not Prime");
        return 0;
    }

    for( i = 3; i <= m; i++)
    {
        if(n%i == 0)
        {
            printf("Not Prime: %d\n", i);
            return 0;
        }

    }

    printf("Prime");
    return 0;
}

我不确定为什么这段代码将这个数字打印为非质数。

最佳答案

您长时间超出了最大值。请参阅Data type limits .

关于c - 判断给定的数字是否是质数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25145906/

相关文章:

将字符串转换为十六进制,如 "88"转换为 0x88

c - 能被 n 整除的最小正整数

c - 在 C 中,如何将结构的成员声明为 volatile?

c++ - 你能告诉我为什么这会产生超过 spoj(质数生成器)的时间限制吗

c - setuid() 返回 0 但没有效果

c - 区 block 链中的 "nonce"应该有多大?

algorithm - 使用素数比较字谜

multithreading - 了解分配 : Search for prime number above 1 quadrillion using servlets

c - 如何在 C 中为素数筛选算法设置可变长度数组?

java - 如何创建一个代码来告诉两个整数互质?