2025-12-28 22:55:25 +09:00

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"))