No5 Java

题目:

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 number that is evenly divisible by all of the numbers from 1 to 20?

 

翻译:

2520是最小一个能被1到10都整除的数。那么最小一个能被1到20都整除的数是几?

 

解题思路:

一大坨英文,翻译成正常人能听懂的话,叫:计算1-20的最小公倍数。

最小公倍数,就要把1-20全部因式分解,然后取各因数的最大幂,将他们乘积。

不过,费时费力。。。

 

换个思路。比如 6 与 9。 6=2X3 9=3X3, 所以最小公倍数是2X3X3 = 18。

那如果加上 2 与 3 一起求 最大公倍数呢? 发现还是18。 其实问题就可以这么想。

以 2,3,6,9为例子。

计算首先记录下2,3。因为是质数。然后计算6时,发现,除掉之前的2,和之前的3,就剩1了。那么就是说,6并没有需要保留的

因子的幂的增量。来看9,除掉个3,还有一个3,意思就是,有因子3,幂的增量是1,所以再记录一个3。 全部计算完毕,我们记录了一个2 和两个3 。那么最小公倍数就是他们的乘积:18。

 

那么就可以写出简单的循环计算因子增量的方法。然后讲他们全部相乘,结果就被阿拉组特勒。

 

代码:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值