1
3
在PHP中,它将如下所示:
它的速度至少是你发布的速度的两倍。 |
2
6
收集1到20之间所有数字的基本因子。计算每个素因子的最大指数,我们有
|
3
2
克里斯·杰斯特·杨是对的。 一般来说,如果你想要一个最小的数,它可以被1到n之间的所有数平均整除,你需要找到2到n之间的所有素数,对于每个素数,找到它将范围内任何数相除的最大次数。这可以通过求不大于n的素数的最大幂来计算。 克里斯指出,在20的情况下,2^4是2不大于20的最大幂,3^2是3不大于20的最大幂,对于所有其他素数,只有第一幂不大于20。 |
4
2
您可以删除一些被除的数字,例如1是不必要的,所有自然数都可以被1除尽。您也不需要2,因此,所有数字都可以被2(4、8、16等)的倍数除尽,也可以被2除尽。所以相关的数字是11、12、13、14、15、16、17、18和19。 所以:
|
5
1
是目前最快、最短的PHP解决方案。比我的比赛快1.4倍。但是看看python的解决方案,这是一个很好的算法。 |
6
0
有些人真的对这件事想得太多了… 露比:
|
7
0
@做简单数学的人;我不确定这是否是练习的目的。你要学习新的语言和新的表演方式。仅仅用计算器来计算是不正确的。 我知道这是一篇旧文章,但它仍然出现在谷歌的搜索结果中。 在代码(即php)中,我发现这是最快的解决方案:
是的,这是一个修改件从CMS。它更快的主要原因是,当你阅读这个问题时,他们已经声明前10个整数的最小可能数是2520。因此,您可以只增加2520而不是20。减少了126倍的循环 |
8
-1
我知道你说的是php,但这是我在python中的草稿。
它并不像我想象的那么优雅,但它计算出2到2000的最小公倍数。15秒。如果你的迭代解每秒能处理10亿个候选者,它需要10^849年才能完成。 换句话说,不要费心优化错误的算法。 |