题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3622
题目大意:
如果一个数字x满足如下条件:
任意加一个数字y在x的左边,都能是yx是x的倍数,比如1满足,2满足,5满足条件。
然后最开始以为1 2 5 的十倍数10 20 50 , 100 200 500 以及很多,然后后来发现了一个bug就是25 ,发现找的规律是有问题的。
后来发现是10 100 1000 10000 分别除以1 2 3 4 5 6 7 8 9 ,
如果余数是0,那说明商是满足条件的。
比如10为被除数时候 10 5 2 1
比如100为被除数时候 100 50 25 20 10 满足条件
规律就是上面那样。直接找出所有符合条件的然后一遍查找就可以了。
ll a[1000000];
int main(){
ll i,j,n,m;
ll cnt = 0;
for(i=10;i<=100000000000LL;i*=10){
for(j=10;j>=1;j--){
if(!(i%j)){
if(i/j==a[cnt-1]) continue;
a[cnt