C 数的素因子
我试图开发一个代码来计算一个数字的[prime factors][1],但是我没有得到任何输出。有人能指出我在哪里犯了错误吗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
#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;jvoid 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]);
}
}