Bonjour j'ai ecris le code suivant pour decomposer un entier en facteurs premiers ,il marche bien mais peut on faire plus court ou l'ameliorer ?
Option Base 1
Sub facteurs_premiers()
Dim i As Integer
Dim t As Variant
ReDim t(1 To 100)
For i = 1 To 100
t(i) = i
Next
p = InputBox("saisir un entier à décomposer")
For u = 1 To UBound(t)
If premier(Val(t(u))) = True Then
If p Mod Val(t(u)) = 0 And Val(t(u)) <> 1 Then
j = 0
Do
j = j + 1
Loop Until p Mod Val(t(u)) ^ j <> 0
e = e & "*" & Val(t(u)) & "^" & j - 1
End If
End If
Next
MsgBox e 'retourne la décomposition en facteurs premiers
End Sub
avec sa fonction "premier" qui verifie qu'un nombre est premier :
Function premier(x As Integer) As Boolean
For i = 2 To x - 1
If x Mod i = 0 Then
n = n + 1
End If
Next
If n = 0 Then
premier = True
End If
End Function
merci pour vos commentaires