24 lines
685 B
Python
24 lines
685 B
Python
import math
|
|
import sys
|
|
|
|
input = sys.stdin.readline
|
|
|
|
min, max = map(int, input().split())
|
|
|
|
arr = [False] * (max-min+1)
|
|
|
|
for i in range(2, int(math.sqrt(max)+1)):
|
|
pow = i * i
|
|
start_index = int(min / pow) # 제곱수가 아닌 수 -> 제곱수는 무언가를 곱해서 만드는 수 ? 인걸로 이해했는데
|
|
if min % pow!=0:
|
|
start_index += 1
|
|
for j in range(start_index, int(max/pow)+1):
|
|
arr[int((j*pow) - min)] = True
|
|
|
|
count = 0
|
|
for i in range(0, max-min+1):
|
|
if arr[i] == False:
|
|
count += 1
|
|
|
|
print(count)
|