题目大意:定义一种操作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!