Files
Algorithm/백준/1016.Py
2026-04-11 11:46:27 +09:00

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)