prime-pair.go 464 B

12345678910111213141516171819202122232425262728293031323334
  1. package main
  2. import (
  3. "fmt"
  4. )
  5. func main() {
  6. var n int
  7. fmt.Scan(&n)
  8. sieve := make([]bool, n+1)
  9. prime := make([]int, 0)
  10. for i := 2; i*i <= n; i++ {
  11. if sieve[i] {
  12. continue
  13. }
  14. for j := 2 * i; j <= n; j += i {
  15. sieve[j] = true
  16. }
  17. }
  18. for i := 2; i <= n; i++ {
  19. if !sieve[i] {
  20. prime = append(prime, i)
  21. }
  22. }
  23. cnt := 0
  24. m := make(map[int]bool)
  25. for _, p := range prime {
  26. if m[n-p] || 2*p == n {
  27. cnt++
  28. }
  29. m[p] = true
  30. }
  31. fmt.Println(cnt)
  32. }