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