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

11 Lösungen Lösungen öffentlich
#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
vote_ok
von stbehl (1640 Punkte) - 15.02.2018 um 10:03 Uhr
Quellcode ausblenden C#-Code
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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben