用于简单算法尝试
如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3;28=1+2+4+7+14。
如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3;28=1+2+4+7+14。
//判断是否是完数 function is_factor($factor) { if($factor<1) return false; if($factor==1) return array(1); if(!isset($arr)){$arr=array();} for($i=1;$i<$factor;$i++){ if($factor%$i==0){ $arr[]=$i; } } $len=count($arr); $i=0;$temp=0; while($i<$len) {$temp+=$arr[$i];$i++;} if($temp==$factor) return $arr; else return false; } $factor=6; $count=0; for($i=1;$i<=$factor;$i++) { $res=is_factor($i); $len=count($res); if(is_array($res)){ echo $i.'='; for($j=0;$j<$len;$j++){ if($j!=0) echo '+'.$res[$j]; else echo $res[$j]; } $count++; echo '<br>'; } } if($count==0) echo '不存在完数!';
- 上一篇:简单计算
- 下一篇:邮箱正则表达式验证 Bug
精彩图集
精彩文章