42 lines
855 B
Swift
42 lines
855 B
Swift
import Foundation
|
|
|
|
let MAX_NUM: Int = 1000000
|
|
let SQRT_MAX = Int(sqrt(Double(MAX_NUM)))
|
|
|
|
var isPrime: [Bool] = Array(repeating: true, count: MAX_NUM+1)
|
|
(isPrime[0], isPrime[1]) = (false, false)
|
|
|
|
for n in 2...SQRT_MAX {
|
|
if isPrime[n] {
|
|
for i in stride(from: n*n, through: MAX_NUM, by: n) {
|
|
isPrime[i] = false
|
|
}
|
|
}
|
|
}
|
|
|
|
func pairCount(_ num: Int) -> Int {
|
|
var ans: Int = 0
|
|
|
|
for n in 2...num/2 {
|
|
if isPrime[n] && isPrime[num-n] {
|
|
ans += 1
|
|
}
|
|
}
|
|
|
|
return ans
|
|
}
|
|
|
|
func solve() -> [String] {
|
|
var result: [String] = []
|
|
guard let T = Int(readLine() ?? "") else { return []}
|
|
|
|
for _ in 0..<T {
|
|
guard let N = Int(readLine() ?? "") else { break }
|
|
result.append(String(pairCount(N)))
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
print(solve().joined(separator: "\n"))
|