Amis en javascript

Fermé
ahmed - 24 janv. 2012 à 14:22
matthoffman Messages postés 405 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 22 janvier 2013 - 24 janv. 2012 à 15:17
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 405 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 22 janvier 2013 47
24 janv. 2012 à 15:17
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