前几天在网上看的一个例子 觉得很好 注意实现过程
#include <stdio.h>
#include <stdlib.h>
char str[300];//定义字符数组 存放每一个数字的个数
int create(int n)//求N的质因数
{
int i;
for(i=2;i<=n;i++)
{
if(n%i==0)
{
str[i]++;
n=n/i;
i=i-1;
}
}
return 0;
}
int fun (int n)//递归求N!中每一个数 然后调用 create 分别求其中每一个质因数
{
if(n==1)
return ;
create(n);
fun(n-1);
return 0;
}
int main()
{
int i,n;
scanf("%d",&n);
fun(n);
for(i=2;i<300;i++)
{
if(str[i]!=0)
printf("%d^%d*",i,str[i]);
else
break;
}
return 0;
}