c语言问题 编写一个函数,求出一个给定的数字的所有因子,如72=2*2*2*3*3.

来源:百度知道 编辑:UC知道 时间:2024/06/25 15:59:45
小妹我是一个C语言初学者,望各位朋友帮我解决这一问题,多多注释,谢谢各位了阿....

#include<stdio.h>
void main()
{
int x,y,i=2,j=0,m;
printf("输入数字:");
scanf("%d",&x);
m=x;
int a[15]={0};
//设定一个范围足够的数组存放因子
while(i<=x)
{
if((x%i)==0) { x=x/i ;a[j]=i; j++; i=2;}
else i++;
//由于一个数的因子会小于或等于本身,所以可以
//以此设定跳出条件,用遍历的思想去从2开始逐个寻找因子
//如果那个数是因子之一则可以被整除if((x%i)==0)
//以此作为判断条件,而一个数的因子可能会重复
//所以每找到一个就要有重头开始再判断一边
//i=2;就是作为复位的,其实这个程序和算法很简单
//你自己多看两遍就明白了
//如果还有不懂得就直接上我的空间找我好了
}
printf("y=");

if(j==0) printf("%d\n",m);
//这是特殊情况质数
else
{
for(i=0;i<j-1;i++) if(a[i]!=0) printf("%d*",a[i]);
printf("%d\n",a[i]);
}

}

问问题之前,请先使用 搜索答案
http://zhidao.baidu.com/question/35806649.html?si=2
源程序如下:
main()
{
long n;