![]() ![]() |
<SCRIPT
LANGUAGE=JavaScript>
function go()
{
nbr=""
// le nombre donné est nbr
decomp = new String() // decomp
sera la chaîne de caractères
égale à la décomposition primaire cherchée.
nbr=eval(prompt("Entrez un nombre:",nbr))
if(nbr==null) return
if(nbr==2 || nbr==3 || nbr==5 || nbr==7) {alert("Un peu de sérieux, ce cas est
trivial !");return}
copynbr=nbr;
//--------------------------------------------- test division par 2
expo=0
while(nbr % d==0){expo=expo+1;nbr=nbr/2}
// le nombre donné est divisé
par 2 autant que possible
if (expo==1){decomp=decomp+"2"}
if (expo>1){decomp=decomp+"2^"+expo}
//--------------------------------------------- test division par 3
expo=0;
while(nbr % d==0){expo=expo+1;nbr=nbr/3} // le nombre résultant des
divisions par 2 est divisé par 3 autant
que possible
if (expo==1){if (decomp==""){decomp="3"}else{decomp=decomp+" x 3"}}
if (expo>1){if (decomp==""){decomp="3^"+expo}else{decomp=decomp+" x 3^"+expo}}
//--------------------------------------------- test division par 6a ± 1
d=0;a=0;
while (d*d<=nbr)
{
a++
// a = 1, 2, ...
d=6*a-1;test() // dans le sous-programme test(), le
nombre résultant est divisé par d = 6a - 1 autant que possible
d = d+2 ; test() // dans le sous-programme
test(), le nombre résultant est divisé par d = 6a + 1 autant que possible
}
//---------------------------------------------
if(decomp==""){alert(copynbr+" est premier !");return}
if(nbr==1){alert(copynbr+" = "+decomp)} else {alert(copynbr+" = "+decomp+" x "+nbr)}
}
//---------------------------------------------
function test()
{
expo=0
while(nbr % d==0){expo=expo+1;nbr=nbr/d}
if (expo==1){if (decomp==""){decomp=d}else{decomp=decomp+" x "+d}}
if (expo>1){if (decomp==""){decomp=d+"^"+expo}else{decomp=decomp+" x
"+d+"^"+expo}}
}
//---------------------------------------------
// pour ouvrir cette page
function list()
{open ("../anx/listing_decomp_fact_prem.html","BasDroit")}
</SCRIPT>
JavaScript dans ChronoMath : »