- header("Content-type:text/html;charset=utf-8");
- /*
- * 因数概念:假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因数。
- * 完全数概念:如果一个数恰好等于它的因子之和,则称该数为“完全数”。
- */
- function get_mul($num) {
- for($i = 1; $i <= $num; $i ++) {
- for($j = 1; $j < $i; $j ++) { // 内层for循环求一个数的除自身外的所有因数
- if ($i % $j == 0) {
- $arr [] = $j;
- }
- }
- if (isset ( $arr )) {
- if (array_sum ( $arr ) == $i) { // 如果因数的和刚好等于这个数,说明它是完全数
- $res [$i] ['full'] = $i; // 将这个数存进数组
- $res [$i] ['mul'] = $arr; // 将这个数的因数也存进数组
- }
- $arr = array (); // 每求得一个完全数,存放因数的数组要清空,不然多个数的因数会存在在一起,结果错误
- }
- }
- if (isset ( $res )) {
- return $res;
- } else {
- return false;
- }
- }
- $arr = get_mul ( 1000 );
- if ($arr) {
- echo '100以内的完全数有:<br>';
- foreach ( $arr as $key => $value ) {
- echo $value ['full'] . '--它的因数有:' . implode ( ',', $value ['mul'] ) . '(不包括本身)<br>';
- }
- } else {
- echo '无任何完全数';
- }
- //该片段来自于http://www.codesnippet.cn/detail/1410201410629.html
来源: http://www.codesnippet.cn/detail/1410201410629.html