Nombres parfaits

Contenu du snippet

Cette page comprend 2 scripts indépendants. L'un détermine si un nombre est parfait ou non et l'autre permet de rechercher tous les nombres parfaits entre 2 valeurs limites.

Source / Exemple :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
<html>
	<head>
		<title>NOMBRES PARFAITS</title>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<script type="text/javascript">
<!--
function parfait()
{
sum=0;
nbre=document.calculs.entree.value;
for (var i=1; i<nbre; i++)
{
mod=nbre % i;
if (mod == 0)
{
sum+=i;
document.calculs.sortie.value+=i+", ";
}
}
if (sum == nbre)
alert(nbre+" est un nombre parfait");
else
alert(nbre+" n'est pas un nombre parfait");
}

function parfait2()
{
limiteA=document.calculs.entree.value;
limiteB=document.calculs.entree2.value;
if (limiteA != "" && limiteB != "")
{
for (var z=limiteA; z<=limiteB; z++)
{
sum=0;
for (var i=1; i<z; i++)
{
mod=z % i;
if (mod == 0)
sum+=i;
}
if (sum == z)
document.calculs.sortie.value+=z+", ";
}
document.calculs.sortie.value+="FIN";
}
else
alert("Les valeurs limites manquent");
}

function nettoyage()
{
document.calculs.entree.value="";
document.calculs.entree2.value="";
document.calculs.sortie.value="";
sum=0;
}
-->
		</script>
	</head>
	<body bgcolor="lightblue">
		<h2 align="center">Calculs sur les nombres parfaits</h2>
		<div align="center">
			<form name="calculs">
				<input type="text" name="entree" size="20" /> Valeur à tester ("limite basse")
				<br />
				<input type="text" name="entree2" size="20" /> Valeur à tester ("limite haute", pour "TESTER2")
				<br />
				<textarea name="sortie" cols="50" rows="5"></textarea> Résultat(s)
				<br />
				<br />
				<input type="button" onClick="parfait();" value="TESTER"/> Cliquer ici pour savoir si la valeur est un nombre parfait<br />
				<br />
				<input type="button" onClick="parfait2();" value="TESTER2"/> Cliquer ici pour savoir si la série de nombres compris entre limite basse et limite haute contient des nombres parfaits<br />
				<br />
				<input type="button" onClick="nettoyage();" value="EFFACER"/> Effacer les anciennes valeurs<br />
			</form>
		</div>
	</body>
</html>

Conclusion :


Fonctionne à priori avec IE (Win et Mac), Safari, Netscape (Mac au moins), Firefox...
NB: le second script peut être très long à s'exécuter si la plage de nombres à tester est grande et/ou si les valeurs sont élevées. Dans la pratique ce script n'est utilisable que jusqu'au nombre parfait 8128.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.