晚修我自己再用递归法做了一下:不过感觉还是比linlulu001版主的复杂了一些,但我也把我的写来给大家看一下
#include<stdio.h>
int main()
{
int a,fun(int a);
scanf("%d",&a);
if (a<=0)
{
printf("scanf error\n");
return 0;
}
printf("%d=",a);
if (a==1)printf("1");
else fun(a);
printf("\n");
return 0;
}
int fun(int a)
{
static int j=0;
int i;
for (i=2;a%i;i++);
if (j)printf("*%d",i);
else
{
printf("%d",i);
j=1;
}
if (a/i>1)fun(a/i);
return (a);
}
和上楼一样还是没有判断n是素数——所以,如果碰到n是素数,那么输出就是n=n了。
[此贴子已经被作者于2016-10-24 22:00编辑过]