C# :: Aufgabe #171 :: Lösung #1

4 Lösungen Lösungen öffentlich
#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.
#1
vote_ok
von daniel59 (4260 Punkte) - 04.04.2017 um 09:06 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleSymmetrischePrimzahlen
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> primes = new List<string>() { };
            for (int i = 11; i < 1000000; i += 2)
            {
                if (IsPrimeNumber(i))
                {
                    primes.Add(i.ToString());
                }
            }

            var symm = from p in primes let r = new string(p.Reverse().ToArray()) where primes.Contains(r) && r != p select p;

            foreach (string s in symm)
            {
                Console.WriteLine(s);
            }
            Console.ReadLine();
        }

        public static bool IsPrimeNumber(int number)
        {
            Dictionary<int, int> primes = PrimeFactorization(number);

            return primes.Count == 1 && primes.First().Value == 1;
        }

        public static Dictionary<int, int> PrimeFactorization(int a)
        {
            Dictionary<int, int> primes = new Dictionary<int, int>();
            for (int b = 2; a > 1; b++)
            {
                if (a % b == 0)
                {
                    int x = 0;
                    while (a % b == 0)
                    {
                        a /= b;
                        x++;
                    }
                    primes.Add(b, x);
                }
            }
            return primes;
        }
    }
}

Kommentare:

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

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

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.