c - 一个数的质因数

标签 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)向我展示了我的错误

最佳答案

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

          }
     }

关于c - 一个数的质因数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7462980/

相关文章:

c++ - 如何将数字的每个数字向右排列一步?

c - gdb:为 SIGBUS 处理程序设置断点

c - 在 C 中是否可能有一个结构或函数 union ?

c++ - 如果我打开文件后有人覆盖该文件会怎样?

java - 如何在我的代码中使用 BigInteger 来计算素数?

python - 计算素数并附加到列表

c - 计算第 n 个素数的最短方法是什么?

c - 全局缓冲区溢出,Windows 环境

代码:: block 、过剩和 OpenGL

C - 使用此算法获取素数