一个正整数的因子通常是成对出现的。
例如对于 12:
1×12,2×6,3×4每找到一个较小的因子,就会对应一个较大的因子,因此因子总数通常是偶数。
小蓝有一排编号从 1 开始的无限长的灯,初始状态全部熄灭。
接下来会进行 r 轮操作:在第 i 轮(1≤i≤r),小蓝会将所有编号为 i 的倍数的灯的状态反转(熄灭变为点亮,点亮变为熄灭)。
经过全部 r 轮操作后,请你告诉小蓝:编号在闭区间 [l,r] 内的灯中,最终有多少盏是点亮的?
数据范围:l 和 r 满足 1≤l≤r≤109。
第一行包含两个整数 l 和 r,表示询问的区间端点。
输出一个整数,表示最终点亮的灯的数量。
输入
1 10
输出
3
说明
经过 r=10 轮操作后,编号为 x 的灯被反转的次数等于 x 的正因子个数。初始状态为熄灭,因此最终点亮的灯是被反转了奇数次的灯,即因子个数为奇数的数。数学上,一个数的因子个数为奇数当且仅当它是完全平方数。在区间 [1,10] 内,完全平方数有 12=1, 22=4, 32=9,共 3 盏。因此输出 3。
输入
16 20
输出
1
说明
区间 [16,20] 内,只有 16=42 是完全平方数,其因子个数为奇数(5 个),反转奇数次后点亮。其余数 17,18,19,20 均非完全平方数,反转偶数次,最终熄灭。故答案是 1。
输入
2 2
输出
0
说明
编号 2 的因子有 1 和 2,共 2 个(偶数),反转偶数次后保持熄灭。区间 [2,2] 内无完全平方数,故答案为 0。
输入
1 100
输出
10
说明
区间 [1,100] 内的完全平方数为 12 到 102,共 10 个。它们最终点亮,其余灯熄灭。所以输出 10。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册