从大到小的顺序分解质因数 然后输出
注意0 和 1的特殊情况 极易悲剧。。
这里解释下为什么0的结果是10 题目要找最小的正整数,显然把0排除了,最小的只能是10。
#include<stdio.h>
long i,n,top;
long ans[10000];
int main()
{
scanf("%d",&n);
if (n==0)
{
printf("10");
return 0;
}
else if (n==1)
{
printf("1");
return 0;
}
for (i=9;i>=2;i--)
while (n%i==0)
{
top++;
ans[top]=i;
n/=i;
if (n==1)
break;
}
if (n!=1)
printf("-1");
else
{
for (i=top;i>=1;i--)
printf("%d",ans[i]);
}
}
posted on 2011-06-27 17:53
梦转千寻 阅读(44)
评论(0) 编辑 收藏 引用