查找给定数字是否为素数

use*_*561 2 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;
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么这个代码打印这个数字是非素数.

Tyl*_*ler 9

你超过了最长值.请参阅数据类型限制.