首頁 >後端開發 >php教程 >用於簡單演算法嘗試

用於簡單演算法嘗試

WBOY
WBOY原創
2016-07-25 09:01:10901瀏覽
如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3;28=1+2+4+7+14。
  1. //判断是否是完数
  2. function is_factor($factor)
  3. {
  4. if($factor<1) return false;
  5. if($factor==1) return array(1);
  6. if(!isset($arr)){$arr=array();}
  7. for($i=1;$i<$factor;$i++){
  8. if($factor%$i==0){
  9. $arr[]=$i;
  10. }
  11. }
  12. $len=count($arr);
  13. $i=0;$temp=0;
  14. while($i<$len) {$temp+=$arr[$i];$i++;}
  15. if($temp==$factor) return $arr;
  16. else return false;
  17. }
  18. $factor=6;
  19. $count=0;
  20. for($i=1;$i<=$factor;$i++)
  21. {
  22. $res=is_factor($i);
  23. $len=count($res);
  24. if(is_array($res)){
  25. echo $i.'=';
  26. for($j=0;$j<$len;$j++){
  27. if($j!=0) echo '+'.$res[$j];
  28. else echo $res[$j];
  29. }
  30. $count++;
  31. echo '
    ';
  32. }
  33. }
  34. if($count==0) echo '不存在完数!';
复制代码


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn