Valeur extraire nombres premiers (Ex : 50 --> 2x5x5)

Bonsoir à vous,

je viens avec une fonction (qui me rend une erreur VALEUR!). J'ai essayé de mettre le plus d'information possible dans le code. Merci de votre attention.

Function DevFactPrem(Valeur As Double) As String
' DevFactPrem reçoit un entier (Valeur) et rend une chaine de caractères qui développe cet entier en facteurs premiers
' jusqu'à 250 pour l'instant
' la variable Premier identifie le nombre premier en commençant avec 2..
Dim Premier As Integer
' la variable Phrase va stocker au fur et à mesure la chaîne de caractère des premiers jusqu'à leur puissance
Dim Phrase As String
' Je vide Phrase avant d'entrer dans la grande boucle
Phrase = ""
' La boucle commence avec 2, parce que 1 ne mesure rien ici et ne pourrait
' pas sortir.
For Premier = 2 To 250 Step 1
' Tant que la division de la Valeur actuelle divisée
' par le premier actuel égale 0, on reste dans la boucle While,
' si la condition (Valeur Mod Premier) ne rend pas 0, Valeur n'est plus divisible par ce premier
' ou alors, ce n'est pas un nombre premier.
    While (Valeur Mod Premier) = 0
' si la condition d'entrée est vraie, la Phrase gagne un chainon Premier & x
        Phrase = Premier & "x"
' Puis je divise Valeur par Premier avant de recommencer la boucle While
        Valeur = Valeur / Premier
    Wend
' Une fois sorti de la boucle While, Premier gagne 1 et on tourne
Next Premier
' En sortant de la boucle For, je récupère la
' denière Phrase, qui contient tous les chainons concaténés,
' dans DevFactPrem, c'est l'objectif
DevFactPrem = Phrase
End Function

Bonjour,

De mon coté, ta fonction ne renvoyait pas d'erreur mais un mauvais résultat.

Une proposition en retour

31thephileas.xlsm (12.27 Ko)

A+

Merci beaucoup, ça a l'air de bien marcher avec tes modifications

Rechercher des sujets similaires à "valeur extraire nombres premiers 2x5x5"