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
