반응형
https://www.acmicpc.net/problem/4948
소수문제 에라토스테네스의 체 써서 풂
package main
import (
"bufio"
"fmt"
"os"
)
var erache [300005]int
func findPrime() {
for i := 2; i < 300005; i++ {
if erache[i] == 0 {
erache[i] = 1
for j := 2; i*j < 300005; j++ {
erache[i*j] = -1
}
}
}
}
func findNum(num int) int {
d := 2 * num
var result int
for i := num + 1; i <= d; i++ {
if erache[i] == 1 {
result++
}
}
return result
}
func main() {
findPrime()
in := bufio.NewReader(os.Stdin)
var num = -1
for {
fmt.Fscanf(in, "%d\n", &num)
if num == 0 {
return
}
fmt.Printf("%d\n", findNum(num))
}
}
'Study > algorithms' 카테고리의 다른 글
[백준] 4153 직각삼각형 (0) | 2020.01.19 |
---|---|
[백준] 3009 네 번째 점 (0) | 2020.01.19 |
[백준] 9020. 골드바흐의 추측 (0) | 2020.01.19 |
[백준] 2581. 소수 (0) | 2020.01.19 |
[백준] 2775. 부녀회장이 될테야 (0) | 2020.01.19 |