找出1---1000000内的完全数--不要到死循环里
来源:互联网 发布:pc淘宝直播入口在哪 编辑:程序博客网 时间:2024/04/29 23:27
<?phpheader('Content-type:text/html;charset=utf8');/*如果一个数恰好等于它的因子之和,则称该数为“完全数”[1] 。各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数(Perfect number),又称完美数或完备数。例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。第三个完全数是496,有约数1、2、4、8、16、31、62、124、248、496,除去其本身496外,其余9个数相加,1+2+4+8+16+31+62+124+248=496。后面的完全数还有8128、33550336等等。题目:找出1--1000000中的完全数===注意不要入死循环中;------难点;*/for ($j=1; $j < 1000000; $j++) { $brr=find($j); $sum=0; for ($i=0; $i < count($brr); $i++) { $sum=$sum+$brr[$i]; } if ($sum==$j) { echo $j."<br/>"; }}//var_dump(find(33550336));//echo 15%4;exit;//找出一个整数的因子function find($a){ $arr=array(); $top=ceil($a/2)+1; for ($i=1; $i < $top ; $i++) { if ($a%$i == 0) {//%取余数,注意这里不能从0开始,分母不能为0; $arr[]= $i; } } return $arr;}/*33550336 的因子:array 0 => int 1 1 => int 2 2 => int 4 3 => int 8 4 => int 16 5 => int 32 6 => int 64 7 => int 128 8 => int 256 9 => int 512 10 => int 1024 11 => int 2048 12 => int 4096 13 => int 8191 14 => int 16382 15 => int 32764 16 => int 65528 17 => int 131056 18 => int 262112 19 => int 524224 20 => int 1048448 21 => int 2096896 22 => int 4193792 23 => int 8387584 24 => int 16775168 */?>
0 0
- 找出1---1000000内的完全数--不要到死循环里
- Win32K里的死循环
- 传说中程序里的死循环
- 【转】如何用 C/C++ 求 1 到 1000 内的所有完全数
- _data16_memzero里死循环
- 1到100,放在长度99的数组里,有一个没有在里面,编程找出那个数
- 1到100,放在长度99的数组里,有一个没有在里面,编程找出那个数
- 找出1000以内的完全数
- 找出1000以内的完全数。
- linux使用jstack来找出死循环的java代码
- 3.找出1000内的完数.
- 找出N内的所有完数
- 求1到10000的完全数
- 性能优化1: 能在一个循环内处理的事情,不要分成多个循环
- 找出1到n缺失的那个数
- 找出1到n所有数的因数
- [初学者笔记]从 求区间内完全平方数的个数 中学到的
- 嘿嘿,这就是传说中程序里的死循环呐
- ionic 实时调试android手机
- 《第一行代码》读书笔记
- 【JAVA 课后习题 12.5】 + 自定义异常类
- 部署 instance 到 VXLAN - 每天5分钟玩转 OpenStack(112)
- 从案例学RxAndroid开发(上)
- 找出1---1000000内的完全数--不要到死循环里
- Java有没有值类型
- 快速排序(Quick Sort) 复习
- JAVA JDK安装
- Tomcat Catalina子项目配置多域名访问
- 5、总结
- Gephi初体验
- 如何将SQLite数据库(dictionary.db文件)与apk文件一起发布
- 代码整洁之道-边界