Amis en javascript

ahmed -  
matthoffman Messages postés 499 Statut Membre -
Bonjour, salut
je veux créer un programme en javascript qui fait chercher et afficher tous les entiers amis comprise entre un intervalle donné.
voici mon essai:
j'ai crée un formulaire index.html

<html>
<head>
<title>Somme_Div</title>
<script language="JavaScript" src="fonction_js.js"></script>
</head>

<body>
<table width="38%" border="0" cellspacing="3" bgcolor="#CCCCCC" align="center">
<tr>
<td align="center"><div align="center"><font color="#800000" size="3" face="Georgia, Times New Roman, Times, serif"><kbd>Liste
des couples de nombre amis</kbd></font></div></td>
</tr>
<tr>
<td>B_inf = 
  <input id="n1" type="text" size="10"></td>
</tr>
<tr>
<td >B_sup = 
<input id="n2" type="text" size="10"></td>
</tr>
<tr>
<td align="center"><input type="button" name="Affich" value="Afficher" onClick="verif_saisie()"></td>
</tr>
<tr>
<td align="center"> </td>
</tr>
</table>

</body>
</html>

code de fichier fonction_js.js
function testInt(value) /* fonction pour convertir les valeurs en décimal */
{
return value == parseInt(value); /* converir en entier*/
}

function som_div(n)
{
s=1;
for (i=2; i<=n/2; i++)
{
if (n%i==0)
{
s+=i;
}
}
return s;
}




function verif_amis(a,b)
{
s1=som_div(a);
s2=som_div(s1);
if (s2==a)
{
document.write("("+a+","+s1+")"+'<br>');
//alert("("+a+","+s1+")");
}
}


function verif_saisie()
{
var B_inf = document.getElementById('n1').value;
var B_sup = document.getElementById('n2').value;

if (testInt(B_inf) && testInt(B_sup) && B_inf>=200 && B_sup<=300 && B_inf<B_sup)
{
for (i=B_inf; i<B_sup;i++)
{
for (j=i+1 ;j<=B_sup; j++)
{
verif_amis(i,j);
}
}
}
else {
alert('Saisie non valide');
}

j'arrive pas à localiser l'erreur aider moi svp et merciiiiiii d'avance.





1 réponse

matthoffman Messages postés 499 Statut Membre 47
 
Bonjour, le probleme est que tu utilises majoritairement des variables globales dans ton code JS, alors qu'il faudrait que tu utilises des variables locales.

Du coup vu que tu utilises "i" dans 2 boucles differentes ca fait du n'importe quoi et tu pars dans des boucles qui ne veulent plus rien dire.

Donc utilise le mot cle "var" quand tu veux declarer des variables locales.
0