Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 数的素因子_C_Primes - Fatal编程技术网

C 数的素因子

C 数的素因子,c,primes,C,Primes,我试图开发一个代码来计算一个数字的[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 prim

我试图开发一个代码来计算一个数字的[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);
}
#包括
#包括
整数素数检查(整数i)
{
int j;
对于(j=2;j
void prime(int n)
{
int c=floor(sqrt(n));//更新的代码
int i;
int p[10];
//printf(“因子为:”);

对于(i=1;i您的
printf
语句由conditon构造保护,如果没有输出意味着其中一个条件不会导致
true
,您不能调试它吗?不,它会打印所有素数..不是素数什么?首先您没有得到任何输出,但现在它正在打印所有的数字?那是什么呢?我可以得到all小于sqrt(number)的素数…但这不是我想要的!我想要得到素数因子…我在任何情况下都得不到它!!!!!哈哈,你把它归咎于你的大写锁定键?对英语的卓越理解,那把键有:)
    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]);

          }
     }