脚底的老泥 发表于 2019-11-24 17:27:16

《带你学c带你飞》的阶段考核题目

#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;
}



答案里面这三句代码是什么意思,为什么for循环里面有flag
      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)

ba21 发表于 2019-11-24 22:02:08


#include <stdio.h>
#include <math.h>

int main()
{
      long long i, j, k, l, num = 600851475143;
      _Bool flag = 1;

      j = num/i;
      for (i = 2; flag != 0; i++)
      {

                if (i * j == num)
                {
                        k = sqrt((double)j);
                        for (l = 2; l <= k; l++)
                        {
                              if (j % l == 0)
                              {
                                        flag = 0;
                                        break;
                              }
                        }
                        if (flag)
                        {
                              break;
                        }
                }



            j = num/i;
            flag = 1;
      }

      printf("%lld\n", i);

      return 0;
}


这样能否看得懂?这样的代码不得不说不利于新手阅读,就算是老手代码一多也不方便阅读

zhuyan0215 发表于 2020-2-14 23:02:51

ba21 发表于 2019-11-24 22:02
#include
#include



这样的话,num=20出来的是2。。

zhuyan0215 发表于 2020-2-14 23:18:45

i++ 也放到下面。。而且顺序要一样。。
页: [1]
查看完整版本: 《带你学c带你飞》的阶段考核题目