C语言求因数
來源:互聯網 2009-07-16 06:32:02 評論
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
問題描述:
写一个函数名叫factor的式子,同时显示参数和他所有的素因数,例如函数引用84 那么显示就是84 = 2 × 2 × 3 × 7
參考答案:
#include
int fun(int n)
{int i,k=1;
for(i=2;i<=sqrt(n);i++)
if(n%i==0) k=0;
return k;}
void factor(int n)
{ int i,x,m=n;
printf("\n%d=",n);
for(i=2;i<=n;i++)
{ if(fun(i)==1&&m%i==0){
printf("%d*",i);
m=m/i;
i=1;
if(fun(m)==1) break;}
}
printf("%d\n",m);
}
main()
{ int a;
printf("shu ru yi ge shu:");
scanf("%d",&a);
factor(a);
}
因为一定要是素因数的乘积
所以我多用了一个判断是不是素数的函数,可以不?
如果只能用一个函数,你就自己把fun函数放进去,不过写起来就有点繁了!
[b]分类:[/b] 电脑/网络 >> 程序设计 >> 其他编程语言[br][b]问题描述:[/b][br]写一个函数名叫factor的式子,同时显示参数和他所有的素因数,例如函数引用84 那么显示就是84 = 2 × 2 × 3 × 7[br][b]参考答案:[/b][br]#include
int fun(int n)
{int i,k=1;
for(i=2;i<=sqrt(n);i++)
if(n%i==0) k=0;
return k;}
void factor(int n)
{ int i,x,m=n;
printf("\n%d=",n);
for(i=2;i<=n;i++)
{ if(fun(i)==1&&m%i==0){
printf("%d*",i);
m=m/i;
i=1;
if(fun(m)==1) break;}
}
printf("%d\n",m);
}
main()
{ int a;
printf("shu ru yi ge shu:");
scanf("%d",&a);
factor(a);
}
因为一定要是素因数的乘积
所以我多用了一个判断是不是素数的函数,可以不?
如果只能用一个函数,你就自己把fun函数放进去,不过写起来就有点繁了!