C# :: Aufgabe #70 :: Lösung #8
14 Lösungen
#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
Zum Einstieg kann man erstmal die erste Zahl suchen , die durch alle Werte bis 20 geteilt werden kann.
Dieses ist 232792560
#8
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.
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
Seite 1 von 0
1
