Hallo,
ich habe die Aufgabe, ein Programm in C umzusetzen welches über folgende main-Funktion mehrere Paramteter übergibt, innerhalb der Funktion den Primfaktor der Zahl ermittelt und anschließend an die main-Funktion zurückgibt bis alle Primfaktoren ausgegeben wurden.
Die main-Funktion muss folgendermaßen aussehen:
Ausgabe komplett:
2
2
3
7
usw.
Jedoch habe ich Probleme die Funktion unter den folgenden Rahmenbedingungen umzusetzen:
- keine globalen Variablen
- innerhalb der Funktion keine Ein- und Ausgabe erlaubt
- die Kommunikation muss über die Schnittstelle erfolgen
Wenn von der als Paramter übergebenen Zahl 12 die Zahl 2 als erster Primfaktor zurückgegeben wird hängt das Programm in einer Dauerschleife, da ich keine Möglichkeit sehe den Wert des Primfaktors und des Quotienten zu speichern. Außerdem ist die Funktion nicht rekursiv.
Ich hoffe jemand kann mir einen kleinen Tipp geben der mich meinem Ziel näher bringt.
Danke!
ich habe die Aufgabe, ein Programm in C umzusetzen welches über folgende main-Funktion mehrere Paramteter übergibt, innerhalb der Funktion den Primfaktor der Zahl ermittelt und anschließend an die main-Funktion zurückgibt bis alle Primfaktoren ausgegeben wurden.
Die main-Funktion muss folgendermaßen aussehen:
Code:
int main() {
int pf;
while (( pf = primfaktor (12)) > 1)
printf("%d\n", pf);
while (( pf = primfaktor (7)) > 1)
printf("%d\n", pf);
printf ("%d\n",primfaktor (1));
}
Ausgabe komplett:
2
2
3
7
usw.
Jedoch habe ich Probleme die Funktion unter den folgenden Rahmenbedingungen umzusetzen:
- keine globalen Variablen
- innerhalb der Funktion keine Ein- und Ausgabe erlaubt
- die Kommunikation muss über die Schnittstelle erfolgen
Wenn von der als Paramter übergebenen Zahl 12 die Zahl 2 als erster Primfaktor zurückgegeben wird hängt das Programm in einer Dauerschleife, da ich keine Möglichkeit sehe den Wert des Primfaktors und des Quotienten zu speichern. Außerdem ist die Funktion nicht rekursiv.
Ich hoffe jemand kann mir einen kleinen Tipp geben der mich meinem Ziel näher bringt.
Danke!
Zuletzt bearbeitet: