c
https://fishc.com.cn/forum.php?mod=viewthread&tid=60409 对不起手快了一个回车,问题在这,c作业的第一个阶段检测,我看不懂答案,大哥们救救我,#include <stdio.h>
#include <math.h>
int main()
{
long long i, j, k, l, num = 600851475143;//求num的最大质数因子
int flag = 1;
for (i = 2, j = num/i; flag != 0; i++, j = num/i, flag = 1)
{
if (i * j == num)//i和j是两个因子 ,i从最小的开始,j就最大
{
k = sqrt((double)j);
for (l = 2; l <= k; l++)
{
if (j % l == 0)//判断j是不是质数,不是就下一对
{
flag = 0;
break;
}
}
if (flag)//j 是质数,跳出循环
{
break;
}
}
}
printf("%lld\n", i);//为啥输出变成i了,看不懂了
return 0;
} ??? 注释是我的理解,我以为,一直求的j是最大的质数因子,为啥输出的时候输出i啊,我看不懂, 连帅帅 发表于 2021-6-29 09:52
???
手太快了一个回车帖子发出去了,我都懵了 连帅帅 发表于 2021-6-29 09:52
???
大哥来都来了教教我快 本帖最后由 黎明的黄昏 于 2021-6-29 10:23 编辑
你看一下你的输出语句,输出的值就是设成了i 呀 黎明的黄昏 发表于 2021-6-29 10:18
你看一下你的输出语句,输出的值就是设成了i 呀
这是老师的答案,我就是不懂为啥输出i不是j 是我提问的方式有问题吗,愁 本帖最后由 wsw530 于 2021-6-29 20:26 编辑
这个答案是有些问题的,可以带入一些数字去试试
如果num=35 则程序执行结果为5,而实际应该为7{:10_250:} 永恒的蓝色梦想 发表于 2021-6-29 09:49
https://fishc.com.cn/forum.php?mod=viewthread&tid=60409
谢谢大哥,虽然由于太菜看晕了,但是复制了几个运行一下能知道答案了 wsw530 发表于 2021-6-29 19:37
这个答案是有些问题的,可以带入一些数字去试试
如果num=35 则程序执行结果为5,而实际应该为7
谢谢老哥,
页:
[1]