2011-09-18 70 views
0

我想开发一个代码来计算一个数字的[prime factors] [1],但是我没有得到任何输出。任何人都可以指出我犯的错误吗?一个数字的主要因素

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

给大家我收到回答!感谢杰夫·梅尔卡多为展现我的错

+0

你'printf'报表由conditon结构把守,如果没有输出装置,其中的一项条件不会导致'真',你能不能调试呢? –

+0

不打印所有原始编号..不是主要因素 –

+0

什么?首先,你没有得到任何输出,但现在它打印所有的数字?那是什么? –

回答

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

谢谢!我也一样!!!!!! –

相关问题