zoek gehele delers

Status
Niet open voor verdere reacties.

gast0187

Gebruiker
Lid geworden
4 nov 2012
Berichten
266
ik moet alle gehele delers bepalen van een getal dat ik ingegeven heb?

ik denk dit op te lossen met een for-lus maar het lukt me niet?

Wil of kan iemand mij helpen?

Dit is mijn huidige code:

Code:
Public Class Form1

    Private Sub cmdGeheleDelers_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGeheleDelers.Click
        Dim getal As Integer = (txtgetal.Text)
        Dim teller As Integer = 1
        For i = getal / 2 To 1
            If getal Mod i = 0 Then
                Dim geheledeler As Integer
                geheledeler = getal / teller
                txtgeheleDelers.Text = geheledeler & vbNewLine
                teller += 1
            End If
        Next
    End Sub
End Class
 
Laatst bewerkt:
ok maar wat is er fout aan deze code?

Ik werk met een textbox txtgetal, en txtgeheleDelers om mijn resultaat in te zetten.
Als ik het programma debug en op mijn button klik werkt er totaal niets.

iemand een oplossing?
 
Laatst bewerkt:
Je topic opnieuw omhoog schoppen binnen een tijdsbestek van ca. 30 minuten is niet toegestaan. De helpers verblijven en helpen hier op vrijwillige basis. Enige gereserveerdheid voor de oplossing van je probleem is dus wel op zijn plaats.
 
Na het plaatsen van deze topic reageer je op 16:29 uur met de reactie;
ok maar wat is er fout aan deze code?
Ik werk met een textbox txtgetal, en txttxtgeheleDelers om mijn resultaat in te zetten.
Als ik het programma debug en op mijn button klik werkt er totaal niets.
iemand een oplossing?
dat is dus binnen 30 min. en dat is niet gewenst.
 
Off topic berichten verwijderd.
 
1 Om de delers van X te zoeken, volstaat het om van 1 tot wortel(X) te lopen. De deler die je vanaf dan vindt, ben je al tegengekomen als resultaat van de deling.
2 Als je van hoog naar laag gaat met een for next, dan moet je 'step -1' bijvoegen, anders telt de teller 'by default' met 1 omhoog.
3 Een dim in een for next lus is nooit een goed idee. Plaats die gewoon waar hij hoort: helemaal vooraan.

Succes!
 
ik heb het geprobeerd en iets aangepast maar het werkt niet volledig.
ik wil namelijk alle delers van dit getal x.
ik heb eens geprobeerd met getal x (100 ingegeven)
en ik kwam 1 uit (is ok 1 is deler, klopt)

maar ik denk dat het getal toch meerdere delers heeft?

mijn nieuwe code is:

Code:
Public Class Form1

    Private Sub cmdGeheleDelers_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGeheleDelers.Click
        Dim getal As Integer = (txtgetal.Text)
        Dim getal2 As Integer = getal
        Dim geheledeler As Integer
        For i = 1 To getal
            If getal Mod i = 0 Then
                geheledeler = getal / getal2
                txtgeheleDelers.Text = geheledeler & vbNewLine
                getal -= 1
            End If
        Next
    End Sub
End Class
 
Laatst bewerkt door een moderator:
@gast0187 Onnodige quotes verwijderd. Wanneer je direct reageert op een reactie is het niet nodig om dat bericht te quoten. Onnodig quoten heet dat, hetgeen niet gewenst is. Bovendien dient code tussen codetags te staan.
 
Zonder rekening te houden met mijn vorige opmerking ivm wortel(X), moet het volgende lukken:
Code:
getal = 100
For i = 1 To getal
    If getal Mod i = 0 Then
        TextBox1.Text = TextBox1.Text & i & vbNewLine
    End If
Next

Als je er wel rekening mee houdt, dan gaat het als volgt:
Code:
getal = 100
For i = 1 To sqr(getal)
    If getal Mod i = 0 Then
        geheledeler = getal / i 
        TextBox1.Text = TextBox1.Text & i &  vbNewLine & iif(geheledeler<>i,geheledeler & vbNewLine,"")
    End If
Next
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan