Page 1 sur 1

nombre premier ou pas!?

Publié : sam. 17/sept./2005 9:37
par Pierre
bon bah voila j'ai fais un p'tit programme de math fais vite fais pour passser le temp....
le programme dis simplement si le chiffre est premier ou pas....
inutile de dire que jme suis pas amusé a tester si l'utilisateur entrait des des caractère quelquonques....
on entre des entier positif et c'est tout, nan mais :D

par contre comment entrer des chiffres de + de 4 octets? les long me limitent a des chiffres de 4 octets au max...


bon alors si quelqu'un pouvais me dire maintenant les p'tites améliorations a faire, si y a un bug que j'ai pas vu, ou encore des optimisations? pour m'améliorer un peu.... :P
merci
:)
j'ai commenté un peu mais tout le monde doit connaitre c'est simple:

Code : Tout sélectionner

; Trouver des nombres premiers

Diviseurs.l = 2 ; on commence a diviser a partir de deux.... tout les chiffres sont divisibles par 1
Resultat.l = 0
Sortie.b = 0

Nombre1$ = InputRequester( "Entrez un chiffre", "Entrez un nombre entier pour vérifier s'il est premier:", "")

Nombre.l = Val(Nombre1$) ;j'ai un chiffre

If Nombre < 1 ; si le chiffre est négatif ou fais + de 4 octets bah c'est pas bon!
  MessageRequester("J'ai dis!!", "j'ai dis qu'on entre que des entier plus grand que 0!! et qui font pas + de 4 octets!!")
  End 
EndIf 

RacineDuNombre.l = Sqr(Nombre);je prend sa racine carrée


Repeat

  Resultat = Nombre / Diviseurs; je divise le nombre par ses diviseurs

  If Nombre = Diviseurs * Resultat ; je vérifie si le résultat est entier
    
    Sortie = 1                      ; s'il est entier on sors, le nombre n'est pas premier
    Premier$ = " n'est pas premier"
    
   Else                            
  
    Diviseurs = Diviseurs + 1       ; si le résultat n'est pas entier on continue a diviser avec un chiffre plus grand
   
  EndIf 
  
  If Diviseurs > RacineDuNombre; si on a essayé les diviseurs possibles, alors le nombre est premier
    Sortie = 1
    Premier$ = " est premier"
  EndIf 

  
Until Sortie = 1 ;on sais si le nombre est premier ou pas alors on sors et on l'affiche dans le message requester

MessageRequester(Premier$, "Le nombre " + Str(Nombre) + Premier$, #MB_ICONINFORMATION)

End 

Publié : sam. 17/sept./2005 13:38
par Backup
..............

Publié : sam. 17/sept./2005 13:46
par Pierre
justement, jpensais en faire une version ou il écris la table des nombres premier dans un fichir texte :)

Publié : sam. 17/sept./2005 18:30
par Frenchy Pilou
Ici tu as la liste des 100 000 premiers nombres premiers :lol:
http://www.gutenberg.org/etext/65.html.utf8

Ici les 5 premiers millions
Les 100 premiers millions :lol:
http://primes.utm.edu/lists/small/
Bonjour les listes :roll:

La Mecque des nombres premiers
:D
http://primes.utm.edu

Publié : dim. 18/sept./2005 14:01
par Pierre
j'ai plu qu'a battre le record :mrgreen: