一个数字的主要因素

时间:2011-09-18 17:01:22

标签: c primes

我正在尝试开发一个代码来计算数字的[素数因子] [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);
}

给每个人我都要回答!谢谢Jeff Mercado向我展示我的错误

1 个答案:

答案 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]);

          }
     }