| 123456789101112131415161718192021222324252627282930313233343536 |
- package main
- import (
- "fmt"
- "math"
- )
- func main() {
- var n int
- fmt.Scan(&n)
- sieve := make([]bool, n+1)
- prime := make([]int, 0)
- sqrt := int(math.Sqrt(float64(n)))
- for i := 2; i <= sqrt; i++ {
- if sieve[i] {
- continue
- }
- for j := 2 * i; j <= n; j += i {
- sieve[j] = true
- }
- }
- for i := 2; i <= n; i++ {
- if !sieve[i] {
- prime = append(prime, i)
- }
- }
- cnt := 0
- m := make(map[int]bool)
- for _, p := range prime {
- if m[n-p] || 2*p == n {
- cnt++
- }
- m[p] = true
- }
- fmt.Println(cnt)
- }
|