Dans le Zip (source+ fichier exe)
Télécharger le zip
Juste un truc : le ppcm ne marche pas !!! Le resultat est toujours inferieur ou egal au plus petit des deux nombres,ce qui n'est pas logique.Exemple les nombres 4 et 6 : resultat 4 ,normalement ça doit etre 12 je pense
->ricky84Chez moi, quand je fais ppcm(4,6) j'obtiens bien 12 et non 4Apophis
Mise à jour (amélioration de l'algorithme de recherche de nombres premiers)
Juste un tout petit truc que j'ai appris dans un bouquin pour améliorer encore ton algo pour les nombres premiers:Si un nombre est divisible alors, l'un au moins de ses facteurs est inférieur à la racine carrée de ce nombre.Et oui, prenon un nombre qui n'est divisible par aucun des nombres inférieurs à sa racine carrée, alors, le probléme de ses diviseurs sera ..... supérieur au carré de la racine carrée donc à ce nombre !!!donc de façon encore plus optimisé la boucle devientfor i=2 to sqrt(n) verifier n premiernextAu revoir, Boudas
voila une fonction isprime encore mieux optimisé puisque d'aprés ce que j'ai messuré grâce à une api windows, (Private Declare Function GetTickCount Lib "kernel32" () As LongDim Debut As Long, Fin As LongDebut = GetTickCount()'ici le code à chronométrerFin = GetTickCount()MsgBox "Temps mis en millisecondes : " & Fin - Debut)le temps pour calculer les nombres premiers de 0 à 20 000 passe de 78s à 4 secondes ( 78146 à 4036 ms pour être tout à faît rigoureux'Un nombre est premier s'il admet comme diviseur que 1 et lui-même. Par definition, 1 n'est pas premier.If n <= 0 Then isprime = False: Exit Function ' Elimine le cas ou n est inférieur à 0If Val(Right(n, 1)) Mod 2 = 0 And n <> 2 Then isprime = False: Exit Function 'Elimine le cas où n est pairDim iDim m As Doublem = Int(n ^ (1 / 2)) + 1 ' le calcul de l'exposant puis du int prend un temps énorme donc, on faît une variable tamponFor i = 2 To m If n Mod i = 0 And i <> n Then isprime = False Exit Function Else isprime = True End IfNext iA ce que j'ai pu constater, ça donne les mêmes résultats !Au revoir, Boudas
tout en sachant que plus le nombre sera grand et plus grand sera l'écart...
Apres verification,le code du source fonctionne correctement , c'est seulement dans l' EXE contenu dans le fichier ZIP que la fonction ppcm donne un faux resultat !
Merci pour toutes vos remarques.Le code a été modifié en conséquent et le fichier exe recompilé.A+
La fonction PPMC donne tj un mauvais resultat...Par exemple elle sort pour le ppmc de 5 et 6 : 5 ?!?bonne prog
J'oubliai, c seulement l'exe qui foir.
J'ai beau recompiler, avec l'exe, en effet cela ne marche pas. Mais cela fonctionne avec la source.
Cool comme source !! Super prog, plein de fonctions utiles ;-)Pour le pb de l'exe g essayer chez moi en recomplilant c le meme prob ! alors que la source joue parfaitement :-/La je comprend pas !Bonne prog @ tous//JoVB
j'adore ta source vraiment belle donc je me propose a t'aider a l'ameliorer on pourrais en faire un projet commun si tu le desire ^^ sinon vla mon mail :diablaman@hotmail.comenfin sinon en note je met 9 car un prog est jamais parfait a 100% ^^ ++
je n'ais rien a dire vu que je suis encore un debutant en programation mais je vois qu'il est interessant ce programme. Je suis un prof de math on dit que le nombre 1 n'est pas un nombre premier . Bon courage
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte