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
2107713

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.