Pagine

8 giu 2011

Numeri perfetti

perfetti_1.php
<html>
<head>
<title>Numeri perfetti compresi tra 2 numeri</title>
</head>
<body>
<h2><center>Digitare 2 numeri interi positivi<br>
al fine di visualizzare i n. perfetti compresi tra<br>
i 2 numeri acquisiti</center></h2>
<form action="perfetti_2.php" method="POST">
1<sup>o</sup>numero:<input name="prinum"><br>
2<sup>o</sup>numero:<input name="secnum"><br>
<input type="submit" value="Invia">
<input type="reset" value="Cancella">
</form>
</body>
</html>

perfetti_2.php
<?php
//Inizializzazione delle variabili
$prinum=$_POST['prinum']; $secnum=$_POST['secnum'];
/* Controllo che i n. acquisiti siano
  interi positvi*/
if ($prinum>0 and $secnum>0 and $prinum-floor($prinum)==0 and $secnum-floor($secnum)==0) {
//Scambio dei numeri se $prinum>$secnum
if ($prinum>$secnum) {
$transito=$prinum;
$prinum=$secnum;
$secnum=$transito;
}
/* Ciclo di iterazione pre condizionale dal 
  numero minore ($prinum) al numero maggiore
  ($secnum) */
while ($prinum<=$secnum) {
/* Ciclo di iterazione post condizionale
  per sommare i divisori di $prinum
  escluso $prinum */
$i=1; $somma=0;
do {
if ($prinum%$i==0) $somma=$somma+$i;
$i++;
} while ($i<=$prinum/2);
if ($prinum==$somma) echo "$prinum &egrave; perfetto.<br>";
$prinum++;
}
}
else echo "ERRORE!!! Ridigitare...";
?>