Advertisement
Guest User

Untitled

a guest
Jan 21st, 2020
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.76 KB | None | 0 0
  1. a, b = map(int, input().split())
  2. size = b - a + 1
  3. square_free = [True for _ in range(size)]
  4. is_prime = [True for _ in range(size)]
  5. for divisor in range(2, int(b ** 0.5) + 2):
  6.     divisor_sq = divisor ** 2
  7.     first_num = a if a % divisor_sq == 0 else (a - a % divisor_sq) + divisor_sq
  8.     while first_num <= b:
  9.         square_free[first_num - a] = False
  10.         first_num += divisor_sq
  11.     first_num = a if a % divisor == 0 else (a - a % divisor) + divisor
  12.     while first_num <= b:
  13.         if first_num > divisor:
  14.             is_prime[first_num - a] = False
  15.         first_num += divisor
  16.  
  17. result = []
  18. for i in range(size):
  19.     if square_free[i] and not is_prime[i]:
  20.         result.append(i + a)
  21. if len(result) == 0:
  22.     print('NO')
  23. else:
  24.     print(*result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement