20160625T3

题目大意:定义一种操作F,F(b)可以 求出这个数中所有数字的乘积

现求经过一个操作可以得到某数n的最小的数(10<=n<=10^1001-1);没有这样的一个数就输出“There is no such number” 。 

题目分析:求x,使得 F(x)=n;因为n很大所以需要高精度。首先想到的是分解质因数,由于是数中数字的乘积,所以只用算一位数的质因数,因为一旦分解出来的质因数是两位或以上位数,这个数明显就是不可以的。如51=3*17;而求的是数字的乘积,即存在a*b=17。(a,b<10)但因为17是质因数,因此17无法表示为一些一位整数的乘积,故51没有答案。分解质因数虽然时超但是得出了这个结论便有帮助了。

正解:循环9—2 每次如果n能够整除,以n进行div。若不行便continue;

最后算出的n<>1说明并不存在这样的x。n=1便从小到大输出每一次的除数;


Hail Hydra!


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值