【发布时间】:2015-06-30 21:29:18
【问题描述】:
我正在尝试回答这个问题:
13195 的质因数是 5、7、13 和 29。
600851475143 的最大质因数是多少?
这是我的代码:
#include <stdio.h>
int isPrime(long long num)
{
for (long long k = 1; k < num; k++)
{
if (num%k == 0)
return 0;
}
return 1;
}
long long num = 600851475143;
int main(void)
{
long long prime_factor = 0;
for (long long j = 2; j < num; j++)
{
if (num % j == 0 && isPrime(j) == 1)
prime_factor = j;
}
printf("%lli\n", prime_factor);
}
但由于某种原因,它没有打印任何内容,甚至没有结束。这是什么原因造成的?
【问题讨论】:
-
您要求它执行的循环的绝对数量。
-
我想解释一下为什么
long long num是全球性的? -
哦,您的代码正在运行。您只是要求它在输出任何内容之前进行许多、许多、许多 计算。蛮力循环不是解决这个特定的 Project Euler 问题的方法。
-
long long num 是全球性的,因为我是一个假人 @iharob
-
我虽然是 Project Euler 问题,但不确定...