C# :: Aufgabe #334

4 Lösungen Lösungen öffentlich

Primzahlzwillinge (p2 – p1 = 2)

Anfänger - C# von JKooP - 13.10.2020 um 08:52 Uhr
Ein Primzahlzwilling ist ein Paar aus Primzahlen, deren Abstand 2 ist.

Beispiele:

(3, 5), (5, 7), (11, 13), …, (569, 571), …

Schreibe eine Funktion/Methode, die alle Primzahlpaare kleiner 2000 ausgibt.

Viel Spaß

Lösungen:

vote_ok
von Waldgeist (2310 Punkte) - 18.10.2020 um 17:59 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;

namespace Aufgabe_334_Primzahlzwillinge
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            int berechneBisZahl = 2000;

            List<int> primzahlen = new List<int>();
            Console.WriteLine("Gibt Primzahlzwillinge bis zur Zahl 2000 aus\n\n");

            for (int i = 2; i <= berechneBisZahl; i++)   
            {
                if (IstPrimzahl(i))                         
                {
                    primzahlen.Add(i);                  
                }
            }

            int länge = primzahlen.Count - 1;
            for (int i = 0; i < länge; i++)
            {
                if ((primzahlen[i+1]) - (primzahlen[i]) == 2)
                {
                    Console.Write($" ({primzahlen[i]},{primzahlen[i+1]}),");
                }
            }

            Console.ReadKey();





            //Methode zm prüfen ob Zahl eine Primzahl ist
            bool IstPrimzahl(int zuprüfendeZahl)
            {
                for (int i = 2; i < zuprüfendeZahl; i++)
                {
                    if (zuprüfendeZahl % i == 0)
                    {
                        return false;
                    }
                }
                return true;
            }
        }
    }
}
vote_ok
von Trickster (330 Punkte) - 21.10.2020 um 15:04 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 = 2000;

            if (number == 2)
                Console.WriteLine(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);
            }

            for (int i = 0; i + 1 < primzahlen.Count; i++)
            {
                if (primzahlen[i] + 2 == primzahlen[i + 1])
                {
                    Console.WriteLine($"Zwillinge {primzahlen[i]} und {primzahlen[i + 1]}");
                }
            }
            Console.ReadKey();
        }
    }
}
vote_ok
von wolff (40 Punkte) - 31.10.2020 um 00:51 Uhr
Quellcode ausblenden C#-Code
public class Program{

  static void Main(string[] args){
                bool isInt;
                double lastNumber = 0;
                for(double i = 0; i < 2000; i++){
                    isInt = i % 2 == 0;
                    if(isInt == false && i != 1|| isInt == true && i == 2){
                        isInt = i % 3 == 0;
                        if (isInt == false || isInt == true && i == 3){
                            isInt = i % 4 == 0;
                            if (isInt == false){
                                if(i - lastNumber == 2){
                                     System.Console.WriteLine("(" + lastNumber + " | " + i + ")");
                                }
                                lastNumber = i;
                                
                            }
                        }
                    }
                }
            }
         }
      }



vote_ok
von JKooP (18090 Punkte) - 01.11.2020 um 08:30 Uhr
// NET Core 3.x

Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp2
{
    class Program
    {
        static void Main() => GetPrimePairs(2000).ToList().ForEach(x => Console.WriteLine(x));

        static IEnumerable<(int, int)> GetPrimePairs(int max)
        {
            if (max >= 4) yield return (3, 5);
            for (int i = 6; i < max; i+=6)
                if (IsPrime(i - 1) && IsPrime(i + 1)) yield return (i - 1, i + 1);
        }
        static bool IsPrime(int n) => n switch
        {
            2 => true,
            var k when k > 2 => !Enumerable.Range(2, (int)Math.Ceiling(Math.Sqrt(n))-1).Any(x => n % x == 0),
            _ => false
        };
    }
}