ChronoMath, une chronologie des MATHÉMATIQUES
à l'usage des professeurs de mathématiques, des étudiants et des élèves des lycées & collèges
Ce nombre est-il premier ?                            programme JavaScript        
       » Voir aussi calcul des nombres premiers d'un intervalle donné

Selon la théorie, le programme ne fonctionne qu'au delà de n = 7 : évitez d'entrer un nombre inférieur ou égal à 7, un multiple de 2, ou de 3 (comme 537, 2001 ou encore 999993...) ou un nombre non entier (avec point décimal comme 18.47) : vous serez taxé de trivialité ou d'entrée erronée.

   La virgule décimale et les entiers négatifs ne sont pas reconnus mais n'ont rien à faire dans ce contexte...

 i  Vous pouvez entrer une puissance d'un nombre : par exemple 232 + 1 (nombre de Fermat) au moyen de l'expression pow(2,32) + 1. Le programme trouve, comme le prouva Euler, que ce nombre est divisible par 641.

Rappels :  

|| désigne le OU logique , && est le ET logique  |  a%b renvoie le reste de la division de a par b;
=
 = est l'égalité conditionnelle  |  !" désigne le symbole mathématique ≠;
Math.floor (x) renvoie la partie entière de x  |  Pour plus d'explications cliquez sur la clé.

Fonctions mathématiques usuelles de JavaScript : »



<SCRIPT LANGUAGE=JavaScript>
function prem()
{
var nbr = ""
with(Math)
{
nbr=eval(prompt("Entrez un nombre:",nbr))

if (Math.floor(nbr) != nbr){alert("Votre nombre "+nbr+" n'est pas un nombre entier !");return}
if (nbr<= 7 || nbr % 2= = 0 || nbr % 3= = 0)
{
alert("votre nombre est : "+ nbr+"\n"+"ce cas est trivial")   // 
"\n" fait passer à la ligne  
}
else
{
d = 0; a = 0 ; rst = 1; rst2 = 1
while (d*d<=nbr && rst*rst2 >0) 
// on recherche d<=√n
{
a++
d = 6*a - 1 ; rst = nbr % d  
// on recherche d de la forme 6a±1
d = d + 2 ; rst2 = nbr % d
}
if(rst=
= 0 || rst2= = 0)
{
if (rst=
= 0) {d = d-2}
alert(nbr + " est divisible par " + d)
}
else
{alert("Bien vu!" + "\n"+ nbr + " est premier.")}
 
}
}
 // fin function prem()
}
// fin with(Math)
</SCRIPT>


© Serge Mehl - www.chronomath.com