龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

用于简单算法尝试

时间:2014-07-22 14:50来源: 作者: 点击:
分享到:
如果一个大于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 '不存在完数!';
 
精彩图集

赞助商链接