美文网首页
和果子一起来做题-Project Euler-05-R语言版本

和果子一起来做题-Project Euler-05-R语言版本

作者: 9d760c7ce737 | 来源:发表于2017-11-23 16:44 被阅读30次

    2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
    What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?

    找出能被1到20整除的最小数,就是1到20的最小公倍数
    以直觉来结题,对于每一个数判断他是不是能够被1到20的数整除,如果是就保留下来

    n=1
    while(TRUE){
      if (sum(((n)%%seq(1,20) == 0)) >= 20) break
      n = n +1
    }
    

    本质上这个应该能解题,但是算了半天没反应我就只到出问题了
    花间一下,这个数首先肯定能被20整除

    n=1
    while(TRUE){
      if (sum(((20*n)%%seq(1,20) == 0)) >= 20) break
      n = n +1
    }
    

    还是算不出来,那应该还要同时被19整除

    n=1
    while(TRUE){
      if (sum(((380*n)%%seq(1,20) == 0)) >= 20) break
      n = n +1
    }
    

    最后算出了答案,380*n=232792560

    我看到也可以用分解质数方法来做,但是没有兴趣。

    相关文章

      网友评论

          本文标题:和果子一起来做题-Project Euler-05-R语言版本

          本文链接:https://www.haomeiwen.com/subject/ahnzvxtx.html