cs_Axar
Messages postés19Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention12 juillet 2012
-
20 avril 2006 à 18:04
cs_Axar
Messages postés19Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention12 juillet 2012
-
20 avril 2006 à 18:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Axar
Messages postés19Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention12 juillet 2012 20 avril 2006 à 18:04
salut
c'est sympa de trouver quelqu'un qui s'interrese au nombre premier.
meme si la présentation de ton code n'est pas extra et pas du tout commenter.
tu peux rajouter des 'doevents' ce qui permet d'arreter l'application lorsqu'elle est trop longue( si d'autres personnes connaisse autre chose pour ne pas figer l'application , je suis preneur ;) )
personnellement les 'goto' j'aime pas trop. avec les 'if' il existe les 'else'. et pour la boucle 'for' on peut en sortir grace a 'exit for'.
bon sinon c'est une premiere etape pour calculer les nombres premiers.
j'avais deja ecrit un programme ressemblant au tien.
je me suis vite rendu compte qu'il etait beaucoup trop long avec les division.
donc j'ai utiliser une autre methode:
créer un tableau a deux colonnes - le nombre premier
- un compteur
le principe est décrémenté les compteurs a chaque tour.
si l'un des compteur est à 0 cela veut dire que le nombre n'est pas premier, dans le cas contraire ajouter une ligne au tableau avec son compteur.
je sais pas si j'ai été assez clair
malheureusement ce programme je ne l'ai plus.
For i = p To n Step 1
doevents
If (i Mod 2 = 0) And (i <> 2) Then GoTo 1
For j = 3 To Round((i - 1) / 3) + 1 Step 2
doevents
If i Mod j = 0 Then GoTo 1
Next j
Print #1, i
i = i + 1
1: Next i
20 avril 2006 à 18:04
c'est sympa de trouver quelqu'un qui s'interrese au nombre premier.
meme si la présentation de ton code n'est pas extra et pas du tout commenter.
tu peux rajouter des 'doevents' ce qui permet d'arreter l'application lorsqu'elle est trop longue( si d'autres personnes connaisse autre chose pour ne pas figer l'application , je suis preneur ;) )
personnellement les 'goto' j'aime pas trop. avec les 'if' il existe les 'else'. et pour la boucle 'for' on peut en sortir grace a 'exit for'.
bon sinon c'est une premiere etape pour calculer les nombres premiers.
j'avais deja ecrit un programme ressemblant au tien.
je me suis vite rendu compte qu'il etait beaucoup trop long avec les division.
donc j'ai utiliser une autre methode:
créer un tableau a deux colonnes - le nombre premier
- un compteur
le principe est décrémenté les compteurs a chaque tour.
si l'un des compteur est à 0 cela veut dire que le nombre n'est pas premier, dans le cas contraire ajouter une ligne au tableau avec son compteur.
je sais pas si j'ai été assez clair
malheureusement ce programme je ne l'ai plus.
For i = p To n Step 1
doevents
If (i Mod 2 = 0) And (i <> 2) Then GoTo 1
For j = 3 To Round((i - 1) / 3) + 1 Step 2
doevents
If i Mod j = 0 Then GoTo 1
Next j
Print #1, i
i = i + 1
1: Next i
@+