Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- a, b = map(int, input().split())
- size = b - a + 1
- square_free = [True for _ in range(size)]
- is_prime = [True for _ in range(size)]
- for divisor in range(2, int(b ** 0.5) + 2):
- divisor_sq = divisor ** 2
- first_num = a if a % divisor_sq == 0 else (a - a % divisor_sq) + divisor_sq
- while first_num <= b:
- square_free[first_num - a] = False
- first_num += divisor_sq
- first_num = a if a % divisor == 0 else (a - a % divisor) + divisor
- while first_num <= b:
- if first_num > divisor:
- is_prime[first_num - a] = False
- first_num += divisor
- result = []
- for i in range(size):
- if square_free[i] and not is_prime[i]:
- result.append(i + a)
- if len(result) == 0:
- print('NO')
- else:
- print(*result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement