我一直试图编写一个程序来查找600851475143的最大素数,并且在运行下面显示的程序时遇到了一些困难。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
long long n = 600851475143;
long long largest = 0;
int prime(long long c);
int main()
{
for (long long i = 0; i < n; i++)
{
if (n % i == 0 && prime(i) == 0)
{
largest = i;
}
}
printf("%ll\n", largest);
return 0;
}
int prime(long long c)
{
for (long long j = 0; j < c; j++)
{
if (c % j == 0)
{
return 1;
}
}
return 0;
}
该程序编译时没有任何错误或警告,但是当我运行该程序时,它似乎在运行了几秒钟,但是即使main
末尾有一个printf语句,它也没有输出任何内容而完成了。如果有帮助,我正在Windows上使用MinGW和gcc。