>  기사  >  백엔드 개발  >  간단한 알고리즘 시도에 사용됩니다.

간단한 알고리즘 시도에 사용됩니다.

WBOY
WBOY원래의
2016-07-25 09:01:10885검색
如果一个大于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으로 문의하세요.