从零开始到成功 发表于 2020-3-13 09:32:12

《带你学C带你飞》阶段测试

求num最好的质数因子,为什么下面这段代码最后是输出i的值而不是j的值。求大佬帮忙解释一下。
#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);

      return 0;
}

从零开始到成功 发表于 2020-3-13 09:33:41

不好意识打错字了 是求num最大的质数因子。

qiuyouzhi 发表于 2020-3-13 09:35:39

。。。。。
因为你在最后printf输出的是i啊。。。

xugdawn 发表于 2020-3-13 12:05:34

抢个楼来学习,我也不懂,学习学习
页: [1]
查看完整版本: 《带你学C带你飞》阶段测试