当前位置:Gxlcms > PHP教程 > 用于简单算法尝试

用于简单算法尝试

时间:2021-07-01 10:21:17 帮助过:21人阅读

如果一个大于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 '不存在完数!';

人气教程排行