wodka_cheery
23.11.2007, 19:00
Hallo,
schreibe grad ein C-Code zur Primfaktorzerlegung. Das Problem ist, dass es mir diejenigen Zahlen, die man nur durch sich selbst zerlegen kann nicht wirklich richtig ausrechnet, z. b. bei der 11 erscheint 11=11* - nach einem kurzem Moment sieht der Bildschirm dann folgendermaßen aus 1*1*1 bis unendlich.
Ich weiss allerdings nicht wo das Problem liegt.
Bitte um Hilfe.
Gruß
wodka_cherry
# include<stdio.h>
# include<math.h>
int main (void)
{
int x, a=2;
printf("Natuerliche Zahl x = ");
scanf("%d", &x);
/*Primfaktorzerlegung*/
printf("%d=", x);
if (x==2)
{
printf("%d", x);
}
else
{
while (x%a!=0)
{
a++;
}
while (x%a==0)
{
x=x/a;
printf("%d*", a);
while (x%a!=0)
{
a++;
}
if(x == a)
{
printf("%d\n", x);
break;
}
}
}
return 0;
}
schreibe grad ein C-Code zur Primfaktorzerlegung. Das Problem ist, dass es mir diejenigen Zahlen, die man nur durch sich selbst zerlegen kann nicht wirklich richtig ausrechnet, z. b. bei der 11 erscheint 11=11* - nach einem kurzem Moment sieht der Bildschirm dann folgendermaßen aus 1*1*1 bis unendlich.
Ich weiss allerdings nicht wo das Problem liegt.
Bitte um Hilfe.
Gruß
wodka_cherry
# include<stdio.h>
# include<math.h>
int main (void)
{
int x, a=2;
printf("Natuerliche Zahl x = ");
scanf("%d", &x);
/*Primfaktorzerlegung*/
printf("%d=", x);
if (x==2)
{
printf("%d", x);
}
else
{
while (x%a!=0)
{
a++;
}
while (x%a==0)
{
x=x/a;
printf("%d*", a);
while (x%a!=0)
{
a++;
}
if(x == a)
{
printf("%d\n", x);
break;
}
}
}
return 0;
}