https://www.acmicpc.net/problem/6588
[난이도] 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
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Silver2] 2004 : 조합 0의 개수 (Kotlin)) (0) | 2021.05.18 |
---|---|
[BOJ/백준][Silver3] 1676 : 팩토리얼 0의 개수 (Kotlin) (0) | 2021.05.18 |
[BOJ/백준][Silver2] 1929 : 소수 구하기 (Kotlin) (0) | 2021.05.18 |
[BOJ/백준][Silver3] 10799 : 쇠막대기 (Kotlin) (0) | 2021.05.18 |
[BOJ/백준][Silver4] 10845 : 큐 (Kotlin) (0) | 2021.05.18 |