用于简单算法尝试
如果一个大于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
精彩图集
精彩文章






