티스토리 뷰
문제
풀이
package main
import (
"bufio"
"fmt"
"math"
"os"
)
func main() {
var n, count int
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
for true {
fmt.Fscanln(reader, &n)
if n == 0 {
break
}
var numbers = make(map[int]bool, n)
if n == 1 {
fmt.Fprintln(writer, 1)
continue
}
for i := n; i < 2*n; i++ {
numbers[i+1] = true
}
for i := n; i < 2*n; i++ {
if numbers[i+1] == false {
break
}
for j := 1; j < int(math.Sqrt(float64(i+1))); j++ {
if (i+1)%(j+1) == 0 {
for k := 1; k*i <= 2*n; k++ {
numbers[k*(i+1)] = false
}
break
}
}
}
count = 0
for _, v := range numbers {
if v {
count++
}
}
fmt.Fprintln(writer, count)
}
}
728x90
'dev > algorithm' 카테고리의 다른 글
BOJ / 1085번 / 직사각형에서 탈출 [Golang] (0) | 2020.05.12 |
---|---|
BOJ / 9020번 / 골드바흐의 추측 [Golang] (0) | 2020.05.11 |
BOJ / 1929번 / 소수 구하기 [Golang] (0) | 2020.05.09 |
BOJ / 2581번 / 소수 [Golang] (3) | 2020.05.08 |
BOJ / 1978번 / 소수 찾기 [Golang] (0) | 2020.05.07 |
댓글