题目链接:
题目大意
函数 $F(x)$ = x 的素因子个数,给定一个区间 L,R 求 $max(GCD(F(i), F(j))$
其中$(L <= i < j <= R)$,即区间内任意两个不相等的两个数的最大公约数的 最大值
数据范围 $2<=L < R<=1000000$
样例解释
2
// T2 3
//L=2, R=3,f(2)=1, f(3)=1,故答案为 1
解题思路
因为R最大为$10^6$,且$2357111317 = 510510 < 10^6 < 2357111317*19$
所以一定存在 $f(x) < 8$,$(2<=x<=10^6)$
f(x)很容易 求得
故只需要知道L R区间内有多少个 1,2…7 即可
可以 用s[i][j]
保存前i
个F中j
的个数
代码
1 | //Author LJH |