Factorisation en nombres premiers

Contenu du snippet

Programme permettant de factoriser des nombres composés jusqu'à 100000. J'ai voulu faire plus grand mais on perd en rapidité. Si vous pouviez mz dire ce qu'il faut faire pour gagner en rapidité sur des grands chiffres, n'hésitez pas.
Merci.

Source / Exemple :


Private Sub mnuFichierFactor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFichierFactor.Click
        Dim intNbrePrem(100000) As System.Int32
        Dim x, y, intNP As System.Int32
        Dim intDiviseur, intFactor, intCompteurNP As System.Int32
        Dim intNombre As System.Int32 = CInt(txtNombre.Text)
        Dim strNombre, strFactor As System.String

        intNbrePrem(0) = 2
        intNbrePrem(1) = 3
        intNP = 2
        lblFactor.Text = ""
        For x = 5 To 99999 Step 2
            intDiviseur = 0
            For y = 2 To Sqrt(x) Step 1
                If x Mod y = 0 Then
                    intDiviseur += 1
                End If
            Next
            If intDiviseur = 0 Then
                intNbrePrem(intNP) = x
                intNP += 1
            End If
        Next

        For intCompteurNP = 0 To 9591 Step 1
            intFactor = 0
            strFactor = ""
            Do While intNombre Mod intNbrePrem(intCompteurNP) = 0
                intNombre -= intNombre / intNbrePrem(intCompteurNP)
                intFactor += 1
                strFactor = intNbrePrem(intCompteurNP) & "^" & intFactor & "."
            Loop
            lblFactor.Text &= strFactor
        Next

        
    End Sub

    Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click
        txtNombre.Text = ""
        lblFactor.Text = ""
    End Sub

    Private Sub mnuFichierQuitter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFichierQuitter.Click
        End
    End Sub

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.