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

14 Lösungen Lösungen öffentlich
#70

Finde die erste Zahl die durch alle Zahlen bis 30teilbar ist

Fortgeschrittener - C# von 96fabi - 25.09.2014 um 09:01 Uhr
Gesucht wird die erste Zahl, die durch alle Zahlen bis 30 geteilt werden kann(1-30).
Zum Einstieg kann man erstmal die erste Zahl suchen , die durch alle Werte bis 20 geteilt werden kann.
Dieses ist 232792560
#8
vote_ok
von DaBaschdi (120 Punkte) - 10.08.2015 um 16:31 Uhr
Rechnet alles bis zur Zahl 70 in unter einer Sekunde aus. Danach produziert die Decimal-Variable einen System.Overflow.

Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TeilbarDurchAlleZahlenBis
{
    class Program
    {
        static decimal Obergrenze = 1;
        static decimal ZuTeilendeZahl = 1;
        static decimal VorherigeZuTeilendeZahl;

        static void Main(string[] args)
        {                      
            Console.WriteLine("\nObergrenze" + "Von 1-Obergrenze teilbar".PadLeft(Console.WindowWidth - 20));
            Schleife(Obergrenze);
        }

        static void Schleife(decimal Grenze)
        {

        DaCapo:
            for (decimal i = Obergrenze; i > 1; i--)
            {
                if (ZuTeilendeZahl % i != 0)
                {
                    goto NaechsteZahl;
                }
            }
            Console.WriteLine("________________________________________________________________________________");
            Console.WriteLine(Grenze + "\t" + string.Format("{0:0,0}", ZuTeilendeZahl).PadLeft(Console.WindowWidth - 10));
            Obergrenze++;
            VorherigeZuTeilendeZahl = ZuTeilendeZahl;
            Schleife(Obergrenze);

        NaechsteZahl:
            try
            {
                ZuTeilendeZahl = ZuTeilendeZahl + VorherigeZuTeilendeZahl;
                goto DaCapo;
            }
            catch (OverflowException E)
            {
                Console.WriteLine("\n\n" + E);
                Console.ReadLine();
            }
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

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