题目:求第n个是神秘数字。神秘数字定义:从1开始,是4或者5的倍数。
一、前n个神秘数字。
比如是4的倍数。
很简单:
4是一个
4*2是一个
4*3是一个
...
则范围一定在1到4*n内。
且个数为n/4
所以是4或者5的倍数也在1–n/(min(a,b))
②借用最小公倍数完成的容斥原理。求某范围内神秘数字个数。
公式: x/a + x/b –x/(最小公倍数)
问题:最小公倍数怎么求?我们今天的主角上场最大公约数
gcd为用辗转相除法完成的最大公约数,lcm为gcd求来的最小公倍数。
③二分求第n个神秘数字(因为映射f(x)是递增的)
二分大致范围: 1到 n/min(a,b)
m=()/2→具体某范围个数: m/a + m/b –m/(最小公倍数)→和标准范围n进行比较,进一步缩小。