-         

Ergebnis 1 bis 2 von 2

Thema: Primfaktorzerlegung in C

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    23.11.2007
    Beiträge
    7

    Primfaktorzerlegung in C

    Anzeige

    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;
    }

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2004
    Alter
    33
    Beiträge
    165
    wie waers mit folgender Ergaenzung an der Stelle an der du pruefst ob die Zahl ungerade ist? Nach dem a++ quasi. Wenn bis zur eingegebenen Zahl das Modulo nie 0 ergeben hat ist die Zahl prim.
    Code:
    if (x == a)
    {
      printf("%d\n", x);
      return 0;
    }

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •