题目链接:
http://codeforces.com/problemset/problem/55/D
题目大意:
求区间内满足能被每位非零数整除数的个数。数据范围:9*10^18
解题思路:
lcm(1,2,3,4,5,6,7,8,9)=2^3*3^2*5*7=2520 公约数的总个数为4*3*2*2=48个
a%b=0 可推出 a%(k*b)%b=0
故可以用记忆化搜索 dfs(cur,mod,llcm,flag) ;表示从个位到cur位,之前的%2520为mod,之前的各位最小公倍数为llcm,flag=1,表示之前全部是最高位,flag=0表示之前的不全是最高位(也就是一般情况)
用二分查找该最小公倍数的位置