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

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....

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