Durch Primzahlen teilen, bis vollständig in Faktoren zerlegt
In diesem Schritt werden Sie das vorherige Programm ändern, um den Algorithmus zur Primfaktorzerlegung zu implementieren. Wir werden die Datei prime_factorization.c
aktualisieren, um die Eingabezahl durch Primzahlen zu teilen, bis sie vollständig in Faktoren zerlegt ist.
Öffnen Sie die vorhandene Datei:
cd ~/project
nano prime_factorization.c
Ersetzen Sie den vorherigen Code durch die folgende Implementierung:
#include <stdio.h>
void factorize(int number) {
printf("Prime factors of %d: ", number);
// Start with the smallest prime number
for (int divisor = 2; divisor <= number; divisor++) {
while (number % divisor == 0) {
printf("%d ", divisor);
number /= divisor;
}
}
printf("\n");
}
int main() {
int number;
printf("Enter a positive integer to factorize: ");
scanf("%d", &number);
// Check for valid input
if (number <= 1) {
printf("Please enter a number greater than 1.\n");
return 1;
}
factorize(number);
return 0;
}
Lassen Sie uns den Algorithmus zur Primfaktorzerlegung analysieren:
- Die Funktion
factorize()
behandelt den Prozess der Primfaktorzerlegung
- Wir beginnen mit der kleinsten Primzahl (2)
- Die äußere
for
-Schleife versucht jeden potenziellen Teiler
- Die innere
while
-Schleife teilt die Zahl wiederholt durch den aktuellen Teiler
- Wir geben jeden Primfaktor aus, sobald wir ihn finden
- Die Zahl wird in jeder Iteration durch Ganzzahldivision aktualisiert
Kompilieren und starten Sie das Programm:
gcc prime_factorization.c -o prime_factorization
./prime_factorization
Beispielausgaben:
Enter a positive integer to factorize: 24
Prime factors of 24: 2 2 2 3
Enter a positive integer to factorize: 100
Prime factors of 100: 2 2 5 5