contest: Codeforces Round #142 (Div. 2), problem: (B) T-primes
- import math
- prime = [True for i in range(10**6+1)]
- def SieveOfEratosthenes(n):
- p = 2
- while (p * p <= n):
- if (prime[p] == True):
- for i in range(p * p, n+1, p):
- prime[i] = False
- p += 1
- n = input()
- inp = list(map (int,input().split()))
- SieveOfEratosthenes(int(math.sqrt(max(inp))))
- for i in range(len(inp)):
- if inp[i] == 1:
- print("NO")
- continue
- if int(math.sqrt(inp[i]))**2 == inp[i] and prime[int(math.sqrt(inp[i]))]:
- print("YES")
- else:
- print("NO")
Comments
Post a Comment