2011-09-18 3 views
0

J'essayais de développer un code pour calculer les [facteurs premiers] [1] d'un nombre, mais je ne reçois rien en sortie. Quelqu'un peut-il signaler où je fais l'erreur?facteurs premiers d'un nombre

#include<stdio.h> 
#include<math.h> 


int prime_check(int i) 
{ 
    int j; 
    for(j=2;j<i;j++) 
    { 
     if(i%j==0) 
      return 0; 
    } 
    return i; 
} 
void prime(int n) 
{ 
    double c=sqrt(n); 
    int i; 
    int p[10]; 
    //printf("factors are: "); 
    for(i=1;i<=c;i++) 
    { 
     p[i]=prime_check(i); 
     //printf("%d ",p[i]); 

     if(n % p[i] == 0) 
      printf("%d ",p[i]); 

    } 
} 

main() 
{ 


    //printf("enter the number:\t"); 
    int num=36; 
    //scanf("%d",&num); 
    prime(num); 
} 

À TOUS, J'AI OBTENU LA RÉPONSE! Merci Jeff Mercado pour me montrer mon erreur

+0

Votre 'déclarations printf' sont gardées par des constructions de conditon, S'il n'y a pas un moyen de sortie l'une de ces conditions ne donne pas lieu à'on', Pouvez-vous déboguer pas? –

+0

non QUI IMPRIME TOUS LES NUMÉROS PRIME ... pas les facteurs premiers –

+0

Quoi? D'abord vous n'obtenez rien comme sortie mais maintenant il imprime tous les nombres? Alors c'est quoi? –

Répondre

1
void prime(int n) 
    { 
      int c= floor(sqrt(n));   //updated code 
      int i; 
      int p[10]; 
      //printf("factors are: "); 
      for(i=1;i<=c;i++) 
      { 
       p[i]=prime_check(i); 
       if(p[i] == 0)    //added check 
         continue; 
       //printf("%d ",p[i]); 

       if(n % p[i] == 0) 
       printf("%d ",p[i]); 

      } 
    } 
+0

merci! j'ai fait la même chose!!!!!! –

Questions connexes