C# :: Aufgabe #69 :: Lösung #8
11 Lösungen

#69
Größter gemeinsamer Teiler
Anfänger - C#
von hobeditz
- 19.09.2014 um 20:58 Uhr
Entwickeln Sie ein Programm, welches den größten gemeinsamen Teiler zweier Zahlen ermittelt. Die Zahlen sollen vom Nutzer selber bestimmt werden.
Zitat:
Tipp:
Der euklidische Algorithmus könnte helfen.
#8

von stbehl (1640 Punkte)
- 15.02.2018 um 10:03 Uhr

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TrainYourProgrammer69 { class Program { static void Main(string[] args) { int zahlEins, zahlZwei; Console.WriteLine("BERECHNUNG DES GROESSTEN GEMEINSAMEN TEILERS"); Console.Write("Geben Sie die erste Zahl ein: "); while (!Int32.TryParse(Console.ReadLine(), out zahlEins)) { Console.Write("Geben Sie die erste Zahl ein: "); } Console.Write("Geben Sie die zweite Zahl ein: "); while (!Int32.TryParse(Console.ReadLine(), out zahlZwei)) { Console.Write("Geben Sie die zweite Zahl ein: "); } int anzahlTeilerEins = AnzahlTeiler(zahlEins); int anzahlTeilerZwei = AnzahlTeiler(zahlZwei); int[] teilerEins = Teiler(zahlEins, anzahlTeilerEins); int[] teilerZwei = Teiler(zahlZwei, anzahlTeilerZwei); for (int i = 0; i<=anzahlTeilerEins-1; i++) { for (int k = 0; k <= anzahlTeilerZwei-1; k++) { if (teilerEins[i] == teilerZwei[k]) { Console.WriteLine("Der groesste gemeinsame Teiler ist " + teilerEins[i]); Console.ReadKey(); return; } } } Console.WriteLine("Es gibt keinen gemeinsamen Teiler."); Console.ReadKey(); } static int AnzahlTeiler(int zahl) { int anzahlTeiler = 0; for (int i = 0; i <= zahl-1; i++) { if (zahl % (zahl - i) == 0) { anzahlTeiler++; } } return anzahlTeiler; } static int[] Teiler(int zahl, int anzahlTeiler) { int naechsteStelle = 0; int[] teiler = new int[anzahlTeiler]; for (int i = 0; i <= zahl-1; i++) { if (zahl % (zahl - i) == 0) { teiler[naechsteStelle] = zahl - i; naechsteStelle++; } } return teiler; } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1