Guten Tag!
Ich habe ein Programm zur Primfaktorzerlegung geschrieben und es funktioniert nur teilweise, vielleicht kann mir jemand weiterhelfen.
Das Programm funktioniert für jede Zahl unter 2147483647 (es ist eine 10-stellige Primzahl), wenn man eine Zahl die größer ist eingibt, wird nur diese Primzahl ausgegeben. Mir reichen 9-stellige Zahlen bzw. ein paar 10-stellige Zahlen noch nicht, deshalb muss das Programm auch größere Zahlen zerlegen können.
Ich habe bereits versucht, int mit long int bzw. long long und auch unsigned int zu ersetzen für mehr Speicherplatz, jedoch bringt das nichts.
Es ist eins meiner ersten Programme und ich habe noch nicht viel mit C++ programmiert, darum wäre es nett, wenn mir jemand helfen könnte.
Ich habe ein Programm zur Primfaktorzerlegung geschrieben und es funktioniert nur teilweise, vielleicht kann mir jemand weiterhelfen.
Das Programm funktioniert für jede Zahl unter 2147483647 (es ist eine 10-stellige Primzahl), wenn man eine Zahl die größer ist eingibt, wird nur diese Primzahl ausgegeben. Mir reichen 9-stellige Zahlen bzw. ein paar 10-stellige Zahlen noch nicht, deshalb muss das Programm auch größere Zahlen zerlegen können.
Ich habe bereits versucht, int mit long int bzw. long long und auch unsigned int zu ersetzen für mehr Speicherplatz, jedoch bringt das nichts.
Es ist eins meiner ersten Programme und ich habe noch nicht viel mit C++ programmiert, darum wäre es nett, wenn mir jemand helfen könnte.
Code:
#include <iostream>
using namespace std; //benötigte Befehle einfügen
int main() // Anfang
{
int zahl = 0; // Variablen einfügen
int p = 2;
while (zahl < 2) // Zahl muss größer als 2 sein für die Primfaktorzerlegung
{
cout << "Bitte geben Sie eine Zahl größer als 1 ein: ";
cin >> zahl; // Eingabe der zahl
}
while (p <= zahl) // Anfang Primfaktorzerlegung
{
if (zahl % p == 0) // Prüfung auf Teilbarkeit
{
cout << p << "*"; // Ausgabe der Primzahl
zahl /= p; // Zahl wird durch die Primzahl geteilt
}
else
p++;
}
return 0;
}
Zuletzt bearbeitet: