自冪數,又稱阿姆斯特朗數,民間通稱水仙花數。實則只有3位自冪數才是水仙花數。4位5位6位等等各有別的叫法。
復制代碼 代碼如下:
<?php
//阿姆斯特朗數:一個k位數,它的每個位上的數字的k次冪之和等於它本身。(例如:1^3 + 5^3 + 3^3 = 153)
class Armstrong {
static function index(){
for ( $i = 100; $i < 100000; $i++ ) {
echo self::is_armstrong($i) ? $i . '<br>' : '';
}
}
static function is_armstrong($num){
$s = 0;
$k = strlen($num);
$d = str_split($num);
foreach ($d as $r) {
$s += bcpow($r, $k);
}
return $num == $s;
}
}
Armstrong::index();