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

#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ß
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

von C# Anfänger (60 Punkte)
- 06.04.2021 um 21:58 Uhr

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
Seite 1 von 0
1