C# :: Aufgabe #171 :: Lösung #2
4 Lösungen

#171
Symmetrische Primzahlen
Anfänger - C#
von hollst
- 03.04.2017 um 13:55 Uhr
Wieviele Primzahlen P < 1.000.000 sind rückwärts gelesen auch eine Primzahl, jedoch ungleich sich selbst?
Anmerkung: Die (Prim)zahlen 2, 3, 5, 7, 11 erfüllen nicht die Bedingungen (sind rückwärts gelesen sich selbst gleich),
als erste erfüllt die 13 die Bedingungen.
Anmerkung: Die (Prim)zahlen 2, 3, 5, 7, 11 erfüllen nicht die Bedingungen (sind rückwärts gelesen sich selbst gleich),
als erste erfüllt die 13 die Bedingungen.
#2

von hollst (13980 Punkte)
- 19.04.2017 um 09:08 Uhr

using System; using static System.Console; /* Wieviel Primzahlen P < 1.000.000 sind rückwärtz gelesen auch eine Primzahl, jedoch ungleich sich selbst? Anmerkung: Die Primzahlen 2, 3, 5, 7, 11 erfüllen nicht die Bedingung (sind rückwärtz gelesen sich selbst gleich), als erste erfüllt es die 13. */ namespace backprime{ class Program { static string LZ = " "; static void Main() { int maxi = (int)1E+6; ("maxi: " + maxi.ToString()).MessageLine(); int counter = 0, counter_prime = 0; for (var i = 2; i < maxi; i++) if (isPrime(i)) { counter_prime++; int b = backward(i); if (b != i && isPrime(b)) { (i.ToString("n0") + LZ + b.ToString("n0")).MessageLine(); counter++; } } (counter.ToString("n0") + " of " + counter_prime.ToString("n0") + " are not identical forward and backward primes.").MessageLine(); "ready".EndMessage(); } public static bool isPrime(int number) { if (number == 1) return false; if (number == 2) return true; var boundary = (int)Math.Floor(Math.Sqrt(number)); for (int i = 2; i <= boundary; ++i) if (number % i == 0) return false; return true; } public static int backward(int number) { if (number < 10) return number; int result = 0; int pot = (int)(Math.Log10(number)); int ipot = 1; for (var i = 0; i < pot; i++) ipot *= 10; while (ipot > 1) { int zehner = 10 * (number / 10); ; result += ipot * (number % zehner); number /= 10; ipot /= 10; } return result += number; } } static class MyExtensions { public static void MessageLine(this string s) { WriteLine(s); } public static void EndMessage(this string s) { WriteLine(s); ReadKey(); } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1