PHP実験室

完全数感知器

説明

完全数とは、その数自身を除く約数の和が、その数自身と等しい自然数のこと。
具体的には、6=1+2+3, 28=1+2+4+7+14 などが完全数です。
ここでは入力した数字が完全数であるかを調べます。
たったこれだけだけどかなり苦労したツールです(笑)

サンプル

 :2〜1000までの整数(半角)
は、完全数です

スクリプト

htmlの前にこれ

<?php
$num="";
$num1="";
$num2="";
$num3="";
$i="";
?>

bodyにこれ

<form action="perfect.php" method="post">
<input type="text" name="num" /> :2〜1000までの整数(半角)<br />
<input type="submit" value="開始" />
</form>

<?php
$num=$_POST["num"];
echo $num."は、";
if($num<0||1001>$num||$num==""){
for($i=1;$i<$num;$i++){
$num1=$num % $i;
switch($num1){

case "0":
$num2[$i]=$i;
break;
case "1":
$num2[$i]=0;
break;
default:
$num2[$i]=0;
}
}
for($i=1;$i<$num;$i++){
$num3+=$num2[$i];
}

if($num==$num3){
echo "完全数です";
}else{
echo "完全数ではありません";
}
}
?>

メニュー