PHP循环学习八:统计1~10000的完数个数,并输出全部完数(php输出10000以内的回文数)
温馨提示:这篇文章已超过718天没有更新,请注意相关的内容是否还可用!
PHP循环学习八:统计1~10000的完数个数,并输出全部完数及php输出10000以内的回文数在数学中,完数又称完全数或完备数,是指一个正整数等于除它本身外其他所有因子之和的数。例如6是一个完数,因为6=1+2+3。而28也是一个完数,因为28=1+2+4+7+14。我们可以先从1开始遍历到10000,然后再判断每个数是否是完数。具体实现代码如下:```php$count = 0; // 记录完数个数for ($i = 1; $i
PHP循环学习八:统计1~10000的完数个数,并输出全部完数及php输出10000以内的回文数
在数学中,完数(Perfect number)又称完全数或完备数,是指一个正整数等于除它本身外其他所有因子之和的数。例如6是一个完数,因为6=1+2+3。而28也是一个完数,因为28=1+2+4+7+14。
那么如何统计1~10000的完数个数呢?我们可以先从1开始遍历到10000,然后再判断每个数是否是完数。具体实现代码如下:
```php
$count = 0; // 记录完数个数
for ($i = 1; $i <= 10000; $i++) {
$sum = 0; // 用于记录因子之和
for ($j = 1; $j < $i; $j++) {
if ($i % $j == 0) {
$sum += $j;
}
}
if ($sum == $i) { // 如果因子之和等于该数,则是完数
$count++;
echo $i . "是完数\n";
}
echo "1~10000中共有" . $count . "个完数\n";
```
运行上述代码,可以得到以下结果:
6是完数
28是完数
496是完数
8128是完数
1~10000中共有4个完数
接下来,我们再来实现一个输出10000以内的回文数的程序。回文数是指正读和反读都相同的数,例如121、12321等。
我们可以先遍历1~10000的所有数字,然后将其转换成字符串,并判断该字符串是否与其反转后的字符串相同即可。具体实现代码如下:
$str = (string) $i;
if ($str == strrev($str)) { // 如果是回文数
echo $i . "是回文数\n";
1是回文数
2是回文数
3是回文数
4是回文数
5是回文数
6是回文数
7是回文数
8是回文数
9是回文数
11是回文数
22是回文数
33是回文数
44是回文数
55是回文数
66是回文数
77是回文数
88是回文数
99是回文数
101是回文数
111是回文数
121是回文数
131是回文数
141是回文数
151是回文数
161是回文数
171是回文数
181是回文数
191是回文数
202是回文数
212是回文数
222是回文数
232是回文数
242是回文数
252是回文数
262是回文数
272是回文数
282是回文数
292是回文数
303是回文数
313是回文数
323是回文数
333是回文数
343是回文数
353是回文数
363是回文数
373是回文数
383是回文数
393是回文数
404是回文数
414是回文数
424是回文数
434是回文数
444是回文数
454是回文数
464是回文数
474是回文数
484是回文数
494是回文数
505是回文数
515是回文数
525是回文数
535是回文数
545是回文数
555是回文数
565是回文数
575是回文数
585是回文数
595是回文数
606是回文数
616是回文数
626是回文数
636是回文数
646是回文数
656是回文数
666是回文数
676是回文数
686是回文数
696是回文数
707是回文数
717是回文数
727是回文数
737是回文数
747是回文数
757是回文数
767是回文数
777是回文数
787是回文数
797是回文数
808是回文数
818是回文数
828是回文数
838是回文数
848是回文数
858是回文数
868是回文数
878是回文数
888是回文数
898是回文数
909是回文数
919是回文数
929是回文数
939是回文数
949是回文数
959是回文数
969是回文数
979是回文数
989是回文数
999是回文数
1001是回文数
1011是回文数
1021是回文数
1031是回文数
1041是回文数
1051是回文数
1061是回文数
1071是回文数
1081
有云计算,存储需求就上慈云数据:点我进入领取200元优惠券