zoukankan      html  css  js  c++  java
  • 如何找出 1000 以内的「完数」

    题目描述:

    如果一个数恰好等于它的因子之和,那么这个数就被称为「完数」,如 6=1+2+3。编程找出 1000 以内的所有「完数」。

    分析与解答:

    外层循环 998 次,每次循环得到的 $i 传入下个循环内,内部循环求解出符合 $i 整除 $k 等于 0 的数,如果能够整除,那么说明 $k 是 $i 的一个因子,则用 $sum 累加,直到 $sum+1 等于 $i 条件成立,说明 $i 是一个「完数」。需要注意的是,因为 $sum 求解出的因子是不包括 1 的,所以还需要额外的加 1 到 $sum 中,并且 $i 的一个因子是不会大于 $i/2 的,所以内部循环判断是否继续循环的条件为 $i/2。
    实现代码如下:

    <?php
        for($i=2;$i<1000;$i++){
            $sum = 0;
            for($k=2;$k <= $i/2; $k++){
                if($i%$k==0){
                    $sum +=$k;
                }
            }
    
            if($sum + 1 == $i){
                echo $i." ";
            }
        }
    

    程序的运行结果为

    6 28 496
    
  • 相关阅读:
    Struts2-result配置结果视图
    Struts2 -action处理业务请求
    struts 2
    mvc模式
    vue之webpack安装配置vue
    vue之webpack
    文件上传
    LinkedList详解
    ArrayList详解
    HashMap详解
  • 原文地址:https://www.cnblogs.com/hardy-wang/p/12990665.html
Copyright © 2011-2022 走看看