C# :: Aufgabe #70 :: Lösung #2
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
#2
von Mexx (2370 Punkte)
- 29.09.2014 um 09:54 Uhr
Mit dynamischer Eingabe und Zeitermittlung für die Dauer der Berechnung
C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Threading;
namespace ErsteDurchAlleZahlenBisNTeilbareZahl
{
class Program
{
static Stopwatch stopuhr;
static void Main(string[] args)
{
Console.WriteLine("Geben Sie die zu berechnende Zahl ein");
Int32 input = Convert.ToInt32(Console.ReadLine());
stopuhr = new Stopwatch();
stopuhr.Start();
Thread thr = new Thread(new ParameterizedThreadStart(Berechnen));
thr.Start(input);
while (thr.IsAlive)
{
Console.WriteLine("Berechnung wird ausgeführ, vergangene Zeit: {0}", stopuhr.Elapsed.ToString("mm\\:ss\\.ff"));
Thread.Sleep(1000);
}
stopuhr.Stop();
Console.ReadKey();
}
static private void Berechnen(object inp)
{
int input = (int)inp;
int[] alleZahlenBisN = new int[input - 2];
for (int i = 0; i < input - 2; i++)
{
alleZahlenBisN[i] = i + 3;
}
long ergebnis = 0;
bool ok = false;
for (long i = input; !ok; i++)
{
bool ok2 = true;
if (i % 2 == 0)
{
for (int j = input; j > 0; j--)
{
if (i % j != 0)
{
ok2 = false;
break;
}
}
if (ok2)
{
ergebnis = i;
break;
}
}
}
Console.WriteLine("Die erste durch alle Zahlen bis {0} teilbare Zahl ist {1}", input, ergebnis);
Console.WriteLine("Die Dauer der Berechnung betrug {0}", stopuhr.Elapsed.ToString("mm\\:ss\\.ff"));
}
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
