Ich soll eine Primfaktorzerlegung in C programmieren. Dabei soll noch überprüft werden, ob der gefunde Faktor nochmal auftritt. Mein bisheriges Program läuft mehr oder weniger gut...
Ein Problem ist, dass bei der Eingabe von 35 mir das Programm 5*6 anzeigt, quasi die 6 nichtmehr weiter zerlegt. Es müsste 2*3*5 sein.
Das zweite Problem die Eingabe von 72 bringt die Ausgabe von 2*2*3*3..Irgendwo "verschluckt" das Programm die letzte zwei. Es müsste eigentlich 2*2*2*3*3 ergeben.
Ich habe noch nicht so die Erfahrung beim Programmieren ..Über jede Hilfe würde ich mich freuen
Ein Problem ist, dass bei der Eingabe von 35 mir das Programm 5*6 anzeigt, quasi die 6 nichtmehr weiter zerlegt. Es müsste 2*3*5 sein.
Das zweite Problem die Eingabe von 72 bringt die Ausgabe von 2*2*3*3..Irgendwo "verschluckt" das Programm die letzte zwei. Es müsste eigentlich 2*2*2*3*3 ergeben.
Ich habe noch nicht so die Erfahrung beim Programmieren ..Über jede Hilfe würde ich mich freuen
Code:
#include <stdio.h>
int zahl,i=2;
int main (void) {
printf("Bitte geben Sie eine Zahl ein\n");
scanf("%i",&zahl);
if(zahl==1 || zahl==0) {
printf("Größere Zahl eingeben");
}else {
while (zahl%i!=0){ /*Schleife für ungerade Zahlen*/
i++;
}
while(zahl%i==0) {
while (i<zahl){
zahl=zahl/i;
if(zahl%i==0){ /*Prüfe, ob der gefundene Faktor nochmal auftritt*/
zahl=zahl/i;
printf("%i*",i);
}
printf("%i*",i);
i++;
}
}
}
return 0;
}