C# :: Aufgabe #333 :: Lösung #2

3 Lösungen Lösungen öffentlich
#333

Goldbachsche Vermutung (binär)

Fortgeschrittener - C# von JKooP - 13.10.2020 um 08:32 Uhr
Die Goldbachsche Vermutung besagt, dass jede gerade Zahl größer 2 die Summe zweier Primzahlen ist.

1. Schreibe eine Funktion/Methode, die jeweils ein mögliches Primzahlenpaar bis zur Zahl 1000 ausgibt.

Beispiele:

4 = 2 + 2 -> (2, 2)
6 = 3 + 3 -> (3, 3)
8 = 3 + 5 -> (3, 5)

Duplikate durch Vertauschung wie z.B. (3, 5) -> (5, 3) sollen verhindert werden.

2. Schreibe eine Funktion/Methode, die alle mögliche Primzahlenpaare bis zur Zahl 1000 ausgibt.

Beispiele:

10 = 3 + 7 = 5 + 5 -> [ (3, 7), (5, 3) ]
14 = 3 + 11 = 7 + 7 -> [ (3, 11), (7, 7) ]

Viel Spaß
#2
vote_ok
von Trickster (330 Punkte) - 21.10.2020 um 16:51 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;

namespace Primzahlzwillinge
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> primzahlen = new List<int>();

            int number = 0;
            int max = 1000;

            if (number == 2)
                Console.WriteLine(2);
            primzahlen.Add(2);
            if (number % 2 == 0)
                number++;
            for (int i = number; i <= max; i += 2)
            {
                bool primzahl = true;
                for (int j = 3; j < i; ++j)
                {
                    if (i % j == 0)
                    {
                        primzahl = false;
                        break;
                    }
                }
                if (primzahl && i >= 2)
                    primzahlen.Add(i);
            }
            // so ist es einfach übersichtlicher
            for (int i = 2; i < 1000; i = i + 2)
            {
                Console.WriteLine();
                foreach (int primzahl in primzahlen)
                {
                    foreach (int primzahl2 in primzahlen)
                    {
                        if (i == primzahl + primzahl2)
                        {
                            if (primzahl2 > primzahl)
                            {
                                break;
                            }

                            Console.WriteLine($"{i} = {primzahl} + {primzahl2}");
                        }
                    }
                }
            }
            Console.ReadKey();
        }
    }
}

Kommentare:

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

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