nombre premier ou pas!?

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Pierre
Messages : 244
Inscription : ven. 23/janv./2004 20:29
Localisation : 77 (Région parisienne)

nombre premier ou pas!?

Message 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 
Dernière modification par Pierre le sam. 17/sept./2005 15:26, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

..............
Dernière modification par Backup le sam. 19/mars/2011 19:26, modifié 1 fois.
Pierre
Messages : 244
Inscription : ven. 23/janv./2004 20:29
Localisation : 77 (Région parisienne)

Message par Pierre »

justement, jpensais en faire une version ou il écris la table des nombres premier dans un fichir texte :)
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message 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
Est beau ce qui plaît sans concept :)
Speedy Galerie
Pierre
Messages : 244
Inscription : ven. 23/janv./2004 20:29
Localisation : 77 (Région parisienne)

Message par Pierre »

j'ai plu qu'a battre le record :mrgreen:
Image
Répondre