Zum Forum springen
Benachrichtigungen
Alles löschen

[Geschlossen] Größter Gemeinsamer Teiler VB.net

5 Beiträge
4 Benutzer
0 Reactions
342 Ansichten

Ich muss für eine Informatik Hausarbeit ein kleines Programm profgrammieren hat mir jemand noch einen Ansatz wie ich :

Den größten gemeinsamen Teiler ohne den Euklid Algorythmus programmiere

Hier der Ansatz

Sub Main()
Dim a, b As Short, abbruch As Char
Console( Wir schrieben auf die Consolole ).WriteLine ( Wir schreiben auf die Console )("Größter gemeinsamer Teiler zweier Zahlen") 'entspricht
System.Console.WriteLine()
Do
Console.Write("1.Zahl: ") 'Ausgabe ohne Zeilenumbruch
a = CSng(Console.ReadLine()) 'konvertiert einen Datentyop i Datentyp Single
Console.Write("2.Zahl: ")
b = CSng(Console.ReadLine())
'Euklidischer(Algoritmus)
If a = 0 Then
a = b
Else
While b <> 0
If a > b Then
a = a - b
Else
b = b - a
End If
End While
End If
Console.WriteLine("Der größte gemeinsame Teiler ist: " & a.ToString("0"))
Console.Write("Programm beenden (j/n)? ")
abbruch = CChar(Console.ReadLine())
Loop While abbruch <> "j"

End Sub

Sonstige Verbesserungs Vorschläge nehm ich gerne entgegen !


4 Antworten
MisterJ
Beigetreten: 26.03.2006

Warum ohne euklid?

Naja, ansonsten geht immer brute force:
ggt=1
for(i = 1; i <= min_der_zahlen; i++) {
if i teilt a und i teilt b: ggt=i
}


SpaceCowboyIV
Beigetreten: 04.10.2009

müsste auch so gehen:

teiler = a
while ((a mod teiler != 0) oder (b mod teiler != 0))
teiler--
print(teiler)


crt32
Beigetreten: 17.02.2007

und warum keine primfaktorzerlegung? :coolface:


_Anonymous_ Themenstarter
_Anonymous_

Vielen Dank hab das Problem gelöst hat mir sehr geholfen


Teilen: