阶段考核
#include <stdio.h>#include <math.h>
int main()
{
long long i, j, k, l, num = 600851475143;
_Bool flag = 1;
for (i = 2, j = num/i; flag != 0; i++, j = num/i, flag = 1)
{
if (i * j == num)
{
k = sqrt((double)j);
for (l = 2; l <= k; l++)
{
if (j % l == 0)
{
flag = 0;
break;
}
}
if (flag)
{
break;
}
}
}
printf("%lld\n", i); //为什么这里是i为最大质数因子,不是j吗
return 0;
} 应该是 j ,用一个小点的num测试一下就知道了 不是哦,i带进去才是对的,然后我就不知道为什么了 本帖最后由 superbe 于 2019-10-22 15:07 编辑
上面程序运行结果是 i = 87625999,这个都不是质数,它的因子有:
71 839 1471 59569 104441 1234169,结果不对吧。
应该是 j。
页:
[1]