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