Function DevFactPrem(ByVal Valeur As Double) As String
Dim Premier As Long, T() As String, N As Long
Premier = 2
Do
Do While Valeur / Premier = Int(Valeur / Premier)
N = N + 1: ReDim Preserve T(1 To N)
T(N) = Premier
Valeur = Valeur / Premier
If Premier > Sqr(Valeur) Then Exit Do
Loop
If Premier = 2 Then Premier = 3 Else Premier = Premier + 2
Loop Until Premier > Sqr(Valeur)
If Valeur > 1 Then N = N + 1: ReDim Preserve T(1 To N): T(N) = Valeur
DevFactPrem = Join(T, " × ")
End Function