项目Euler Puzzler(特别是在PHP中)

rg8*_*g88 0 php puzzle math

还有另一个最近的Project Euler问题,但我认为这有点具体(我只对基于PHP的解决方案感兴趣)所以我还是要问.

问题#5的任务是:"从1到20的所有数字均可被整除的最小数字是多少?"

现在,我已经解决了两次.曾经非常低效,而且效率更高,但我仍然远离一个特别复杂的答案(我在数学上并不是特别坚固,因此我的蛮力解决方案).我可以看到几个方面我可以改进这一点,但我想知道你们中是否有人能够证明这个问题更有效的解决方案.

*扰流板:这是我不太理想(运行7秒)但仍然可以容忍的解决方案(不知道如何处理双$ ...只是假装你只看到1 ......

    function euler5(){
        $x = 20;

        for ($y = 1; $y < 20; $y++) {

            if (!($x%$y)) {

            } else {  
                $x+=20;
                $y = 1;  
            }   

        }echo $x;
     };
Run Code Online (Sandbox Code Playgroud)

Chr*_*ung 6

收集1到20之间所有数字的素数因子.计算每个素数因子的最大指数,我们有16 = 2**4,9 = 3**2以及5,7,11,13,17,19(每个只出现一次).将该批次乘以,您就得到了答案.