题意:给定区间 [ L , R ] [L,R] [L,R]和一个整数 K K K,问区间内所有满足其最小因子( 1 1 1除外)为 K K K的数的和。
限制: L , R , K ( < = 1 e 11 ) L,R,K(<=1e11) L,R,K(<=1e11)
思路:
首先考虑当 K K K不是素数时,其一定可以分解为更小的数的乘积,这样任何以 K K K为因子的数的最小因子一定不是 K K K,故直接特判 0 0 0。
然后考虑 K K K的大小的限制。
对于任意一个 [ L , R ] [L,R] [L,R]的区间,令 P P P为大于等于 K K K的第一个素数,则当:
R < P ∗ K R < P*K R<P∗K时,最多只有 K K K这一个数满足条件,故此时只需要判断一下 K K K是否在该区间内。
因 P P P约等于 K K K,而 R < = 1 e 11 R<=1e11 R<=1e11,故当 K > 1 e 11 ≈ 320000 K > \sqrt{ 1e11} \approx 320000 K>1e11≈