LCM和的范围为1 ~ 10^9

Sum of LCM range from 1 to 10^9

本文关键字:和的 范围 LCM      更新时间:2023-10-16

那么,第一堂编程课,第一次非评分作业:在c++中,对于从1到10亿的数字范围,找出所有能被1到99整除的数字的和(没有余数)。我该怎么做呢?我怎么才能找到能被1:9整除的最小的数呢?

编辑:这不是怎么上交的,只是一些值得思考的事情。我会在matlab中尝试某种类型的矢量化,但这是我第一天尝试c++,所以我真的不知道,我只是学会了如何初始化变量。

// In pseudocode a very basic algorithm:
main
  for i: 1 to 1000000000
    if (TestValue(i))
      Output(i)
TestValue(i)
  for j: 1 to 99
    if j does not divide i evenly
      return false
  return true

当然,这不会有很好的性能。你可能注意到,如果一个数能被1到99之间的所有数整除,那么它一定能被1…99中的质因数集整除。例如,在1..素数因子是:2 2 2 2 2 3 3 5 7 11 13 17 19。如果某数能被所有数整除1…那么它必须能被2*2*2*2*3*3*5*7*11*13*17*19整除= 232792560。求1到1000000000之间所有能被1整除的数…19,我会找到1到1000000000之间所有能被232792560整除的数。