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
