DIVISEURS & NOMBRES PREMIERS

jmeunier Messages postés 86 Date d'inscription mardi 10 septembre 2002 Statut Membre Dernière intervention 17 mai 2013 - 12 mars 2005 à 16:28
cs_lenglet Messages postés 6 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 4 avril 2006 - 15 mars 2005 à 22:36
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/30027-diviseurs-nombres-premiers

cs_lenglet Messages postés 6 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 4 avril 2006
15 mars 2005 à 22:36
J'utilise Ie6 et j'ai refait plusieurs copier-coller du code source dans le bloc note pour n'obtenir toujours rien.
Dommage, car ce fichier peut être très utile pour des élèves de CM2.
Si quelqu'un peut m'envoyer un bon fichier à cette adresse, je l'en remercie.
ecole-lenglet@wanadoo.fr
cs_olive92 Messages postés 11 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 8 mars 2006
15 mars 2005 à 18:59
pour lenglet:

Quel navigateur utilises-tu ?

Pour avoir les diviseurs d'un nombre, il faut rentrer ce nombre dans le premier champ de saisie et cliquer sur le bouton "DIVISEURS".
Pour déterminer s'il est premier, rentre le nombre au même endroit mais clique ensuite sur "NOMBRES PREMIERS (1)".
Pour rechercher les nombres premiers entre 10 et 1000 par ex, rentre 10 dans le premier champ et 1000 dans le second, puis clique sur "NOMBRES PREMIERS (2).

Voilà
cs_lenglet Messages postés 6 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 4 avril 2006
14 mars 2005 à 22:19
Je dois être stupide mais :
Recopiée dans le bloc note, la page html générée indique une erreur de script.
Je ne sais pas du tout où taper un nombre pour avoir ses diviseurs.
Si quelqu'un, forcément moins idiot que moi, peut me donner la soluce, merci...
cs_olive92 Messages postés 11 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 8 mars 2006
14 mars 2005 à 16:28
J'ai fais des tests et il est impossible d'utiliser:
for (var i=2; i<=10; i++)
car le script sort des nombres qui ne sont pas premiers (notamment ceux dont les diviseurs sont des nombres premiers)
cs_olive92 Messages postés 11 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 8 mars 2006
13 mars 2005 à 20:14
Merci pour cette info.
En effet, l'idée n'est pas mauvaise mais pourquoi éliminer les valeurs paires pour i ?
D'un autre côté je me demande si l'on ne peut pas simplement faire:
for (var i=2; i<=10; i++)
car j'ai l'impression que tous les nombres non premiers sont divisibles par au moins l'une des valeurs suivantes: 2,3,(4),5,(6),7,(8),9,(10). Ainsi on s'affranchi de la taille du nombre à tester et on va beaucoup plus vite surtout pour les grands nombres premiers....
Je fais des tests et je vois.
jmeunier Messages postés 86 Date d'inscription mardi 10 septembre 2002 Statut Membre Dernière intervention 17 mai 2013
12 mars 2005 à 16:28
bonjour,

il me semble qu'en testant la parité du nombre en premier, la ligne
for (var i=2; i<=Math.ceil(Math.sqrt(z)); i++)
pourrait être remplacée par
for (var i=3; i<=Math.ceil(Math.sqrt(z)); i=i+2)
pour accélérer le traitement ...

belle source.
Rejoignez-nous