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

3 Lösungen Lösungen öffentlich
#374

Primfaktorzerlegung und Potenzschreibweise

Fortgeschrittener - C# von JKooP - 03.04.2021 um 09:53 Uhr
1. Schreibe eine Methode/Funktion, die jede Integer- Zahl in ihre Primfaktoren zerlegen kann
und das Ergebnis als Array/Liste zurückgibt.

Beispiel:
24 = 2*2*2*3

Lösung:
a = { 2, 2, 2, 3 }

2. Schreibe eine weitere Methode/Funktion, die die Werte des Arrays aus Aufgabe 1
in Potenzschreibweise überführt und auf dem Bildschirm ausgibt.
Das Zeichen zur Darstellung kann je nach Vorliebe/Programmiersprache variieren (^, **, h, ...).

Lösung:
2*2*2 = 2^3
3 = 3^1

Ausgabe:
2^3 * 3^1

Viel Spaß
#1
vote_ok
von C# Anfänger (60 Punkte) - 06.04.2021 um 21:58 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;

namespace Primfaktor
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Bitte gib deine Zahl ein: ");
            int zahl = Convert.ToInt32(Console.ReadLine());
            int original = zahl;
            int count2 = 0;
            int count3 = 0;            
            List<int> liste = new List<int>();
            while (zahl % 2 == 0 || zahl % 3 == 0)
            {
                if (zahl % 2 == 0)
                {
                    zahl = zahl / 2;
                    liste.Add(2);
                    count2++;
                };
                if (zahl % 3 == 0)
                {
                    zahl = zahl / 3;
                    liste.Add(3);
                    
                    count3++;
                }
            }
            Console.Write(original+" = ");
            for (int i = 0;i < liste.Count; i++)
                {
                if (i == 0)
                {
                    Console.Write(liste[i] + " ");
                }
                else Console.Write(" * " + liste[i]);
                if (i == liste.Count-1)
                {
                    Console.Write(" * ");
                }

                }
            Console.WriteLine(zahl);
            if (liste.Count == 0)
            {
                Console.WriteLine("Du Idiot hast eine Primzahl eingegeben!");
            }
            if (count2 != 0)
            {
                Console.Write(original+" = "+"2^"+count2+" * ");
                if (count3 == 0)
                {
                    Console.WriteLine(zahl);
                }
            }
            if (count3 != 0)
            {
                if (count2 != 0)
                {
                    Console.WriteLine("3^" + count3 +" "+ " * "+zahl);
                }
                else Console.WriteLine(original+" = "+"3^" + count3 +" "+" * "+zahl);
            }
        }
    }
}

Kommentare:

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

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