Hey Leute,
ich habe mal eine Frage und zwar: Mein Programm funktioniert soweit einwandfrei, aber wenn ich '2' oder '3' eingebe, dann wird nur 2 oder halt 3 und eben nicht "2(oder 3) ist prim." ausgegeben... Bei allen anderen Primzahlen funktioniert es aber :/... Ich habe auch schon versucht, es mit in die if-Anweisung (Zeile 29) zu schreiben, also dann praktisch:
Das funktioniert aber nicht, vielleicht fällt euch ja was auf und ihr könnt mir ein bisschen auf die Sprünge helfen?
Hier noch die Aufgabenstellung, danke schon mal !
ich habe mal eine Frage und zwar: Mein Programm funktioniert soweit einwandfrei, aber wenn ich '2' oder '3' eingebe, dann wird nur 2 oder halt 3 und eben nicht "2(oder 3) ist prim." ausgegeben... Bei allen anderen Primzahlen funktioniert es aber :/... Ich habe auch schon versucht, es mit in die if-Anweisung (Zeile 29) zu schreiben, also dann praktisch:
Code:
if (z % h != 0 || z == 2 || z == 3){
Hier noch die Aufgabenstellung, danke schon mal !
Code:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int z;
int h = 2;
scanf("%d",&z);
if (z < 2){
printf("%d kann nicht zerlegt werden.\n", z);
return 0;
}
int i = 0;
for (i = 2; i <= z/2; i++){
if (z % i == 0){
while(z % h == 0){
printf("%d\n", h);
z = z / h;
}
while (z != 1){
while (z % h == 0){
printf("%d\n", h);
z = z / h;
}
h += 1;
}
}
else{
printf ("%d ist prim.\n", z ) ;
return 0;
}
}
return 0;
}