posts - 0,comments - 0,trackbacks - 0
从大到小的顺序分解质因数 然后输出
注意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)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理