大佬帮忙看一下
C语言教程的阶段考核下边的是我第三题的答案,当求104的最大质数因子时能求出来,求600851475143的,半天没响应。
#include<stdio.h>
#include<math.h>
#define n 600851475143
int main()
{
long long j,i,k;
_Bool b=0;
for (j=1 ; j < n; j++)
{
if(n % j == 0)
{
for(i=2 ; i<pow(j,0.5) ; i++)
{
if(j%i==0)
{
b=1;
break;
}
if(b)
{
k=j;
}
}
}
}
printf("%lld",k);
return 0;
} 有没有什么解决办法 不懂 下一个{:10_266:} 本帖最后由 泌阳 于 2021-10-24 22:30 编辑
要等久点,答案是550145857,可以执行的,我等了半分钟出来的
泌阳 发表于 2021-10-24 22:28
要等久点,答案是550145857,可以执行的,我等了半分钟出来的
你的答案好象不正确
题目要求最大质数因子
550145857 = 32361521*17
550145857 = 11705231*47
550145857 = 688543*799
明显 550145857 不是质数 傻眼貓咪 发表于 2021-10-25 10:25
你的答案好象不正确
题目要求最大质数因子
我执行出来就是这个 泌阳 发表于 2021-10-25 22:56
我执行出来就是这个
抱歉兄弟,你可能对于质数有所误会还是说你不明白?
质数就是除了 1 和自己本身可以被除整以外,没有其他数可以被除整,这是基本啊。
你说:"执行出来就是这个"?你是指因数是这个,还是质数是这个?
题目要求 3 个条件:
最大:必须是最大
质数:必须是质数/素数
因数:必须是因数 傻眼貓咪 发表于 2021-10-26 10:11
抱歉兄弟,你可能对于质数有所误会还是说你不明白?
质数就是除了 1 和自己本身可以被除整以外,没有其 ...
他说的是不能执行,但是我执行出来就是这样的
本帖最后由 傻眼貓咪 于 2021-10-28 14:59 编辑
泌阳 发表于 2021-10-28 14:45
他说的是不能执行,但是我执行出来就是这样的
明白了,楼主代码有误{:10_277:}
楼主代码执行速度超级慢主要是因为找因数所致,判断质数没有问题,查找因数方面代码需加强。
页:
[1]