Diviseurs & nombres premiers

Contenu du snippet

Ce code se décompose en 3 fonctions indépendantes qui permettent respectivement de calculer les diviseurs d'un nombre, de déterminer si un nombre est premier ou non et de rechercher tous les nombres premiers entre 2 valeurs. Le script est compatible avec IE (Win et Mac), Safari, Netscape...

Source / Exemple :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
<html>
	<head>
		<title>@Calculs des diviseurs d'un nombre et des nombres premiers en Javascript@</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
<!--
function diviseur()
{
div=document.calculs.entree1.value;
if (div != "")
{
for (i=1; i<=div; i++)
{
mod=div % i;
if (mod == 0)
document.calculs.sortie.value+=i+", ";
}
}
else
alert("il manque une valeur !");
}

function nbrepremier1()
{
nbre1=document.calculs.entree1.value;
if (nbre1 > 2)
{
premier=true;
for (var i=2; i<=Math.ceil(Math.sqrt(nbre1)); i++)
{
mod=nbre1 % i;
if (mod == 0)
{
premier=false;
break;
}
else
continue;
}
if (premier != false)
alert(nbre1+" est un nombre premier");
else
alert(nbre1+" n'est pas un nombre premier");
}
else
alert("Choisissez une valeur minimale de 3 !");
}

function nbrepremier2()
{
incr=0;
nbre1=document.calculs.entree1.value;
nbre2=document.calculs.entree2.value;
if (nbre1 >= 10 && nbre2 >= 11)
{
for (var z=nbre1; z<=nbre2; z++)
{
premier=true;
for (var i=2; i<=Math.ceil(Math.sqrt(z)); i++)
{
mod=z % i;
if (mod == 0)
{
premier=false;
break;
}
else
continue;
}
if (premier != false)
{
incr++;
document.calculs.sortie.value+=z+", ";
}
}
window.status=incr+" nombres premiers trouvés";
}
else
alert("Choisissez une valeur minimale de 10 et de 11\nrespectivement comme valeur basse et haute");
}

function cleanup()
{
document.calculs.sortie.value="";
document.calculs.entree1.value="";
document.calculs.entree2.value="";
}
-->
</script>
	</head>
	<body bgcolor="lightblue">
<h2 align="center">Voici quelques programmes sur les nombres<br />(1)</h2><hr width=75% />
<div align="justify">Cette page comprend 3 fonctions :<ul><li>Calculer les diviseurs d'un nombre;</li><li>Déterminer si un nombre est premier ou non;</li><li>Rechercher les nombres premiers entre 2 valeurs limites (peut nécessiter beaucoup de puissance de calcul).</li></ul></div>
<form name="calculs">
<input type="text" name="entree1" size="15"/> <b>limite basse</b>
<br />
<input type="text" name="entree2" size="15"/> <b>limite haute (pour le calcul des "nombres premiers(2)")</b><br />
<textarea name="sortie" rows="20" cols="90"></textarea>
<br />
<u>Zone de résultats</u>
<br /><br />
<input type="button" onClick="diviseur();" value="DIVISEURS" /> Recherche des diviseurs d'un nombre.
<br />
<input type="button" onClick="nbrepremier1();" value="NOMBRES PREMIERS(1)" /> La valeur choisie est-elle un nombre premier ?
<br />
<input type="button" onClick="nbrepremier2();" value="NOMBRES PREMIERS(2)" /> Recherche des nombres premiers entre "limite basse" et "limite haute".
<br />
<br />
<input type="button" onClick="cleanup();" value="EFFACER LES ANCIENNES VALEURS" /> Effacer les valeurs des différents champs de saisie.
</form>
	</body>
</html>

Conclusion :


Le script a été optimisé : le nombre de calculs a été fortement réduit pour accélérer le temps de traitement.

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.