Problem-Solving/BOJ
[BOJ/백준][Silver1] 6588 : 골드바흐의 추측 (Kotlin)
has2
2021. 5. 18. 22:24
https://www.acmicpc.net/problem/6588
6588번: 골드바흐의 추측
각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰
www.acmicpc.net
[난이도] Silver1
[유형] 수학
[풀이]
에라토스테네스의 체를 이용해 소수를 미리 구해준다
import java.io.BufferedReader
import java.io.InputStreamReader
import java.lang.IndexOutOfBoundsException
import java.util.*
const val mxN = 1000000
fun main() = with(BufferedReader(InputStreamReader(System.`in`))){
var list = ArrayList<Int>()
var nP = BooleanArray(mxN+1)
nP[1]=true
for(i in 2..mxN/2){
if(nP[i]) continue
var j=i*2
while(j<=mxN){
nP[j]=true
j+=i
}
}
for(i in 2..mxN) {
if(!nP[i]) list.add(i)
}
while(true){
var ip = readLine().toInt()
if(ip==0) break
for(a in list){
if(!nP[ip-a]){
println("$ip = $a + ${ip-a}")
break;
}
}
}
}
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Silver1/6588.cpp