9. 약수, 배수와 소수

WonDDak·2023년 4월 12일
0

BAEKJOON

목록 보기
9/10

열심히 풀어봅시다.~~


5086 배수와 약수

간단한 약수,배수 판정 문제입니다.

//https://www.acmicpc.net/problem/5086
fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    while (true) {
        val (a, b) = br.readLine().split(" ").map { it.toInt() }
        if (a == 0 && b == 0) {
            break
        }
        if (a % b == 0) {
            println("multiple")
        } else if (b % a == 0) {
            println("factor")
        } else {
            println("neither")
        }
    }
}

2501 약수 구하기

중복되는 값이 존재할수도 있기때문에 set으로 받아주면 좋아요~

import java.io.BufferedReader
import java.io.InputStreamReader

//https://www.acmicpc.net/problem/2501
fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val (n, k) = br.readLine().split(" ").map { it.toInt() }

    val numbers = mutableSetOf<Int>()
    for (i in 1 until  n/ 2) {
        if (n % i == 0) {
            numbers.add(i)
            numbers.add(n/i)
        }
    }
    if (numbers.size < k) {
        println(0)
    } else {
        println(numbers.toList().sorted()[k-1])
    }
}

9506 약수들의 합

항상 1은 들어가니 우선 추가해주고 2부터 체크하면 좋겠지용~

package com.wonddak.backjoon_kt.chapter9

import java.io.BufferedReader
import java.io.InputStreamReader

//https://www.acmicpc.net/problem/9506
fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    while (true) {
        val n = br.readLine().toInt()
        if (n == -1) {
            break
        }
        val numbers = mutableSetOf(1)

        for (i in 2 until n / 2) {
            if (n % i == 0) {
                numbers.add(i)
                numbers.add(n / i)
            }
        }
        val st = StringBuilder()
        st.append(n)

        if (numbers.sum() == n) {
            st.append(" = ")
            st.append(numbers.toList().sorted().joinToString(" + "))
        } else {
           st.append(" is NOT perfect.")
        }
        println(st.toString())
    }

}

1978 소수 찾기

package com.wonddak.backjoon_kt.chapter9

import java.io.BufferedReader
import java.io.InputStreamReader

//https://www.acmicpc.net/problem/1978
fun main() {
    fun isPrime(number: Int): Boolean {
        for (i in 2 until number) {
            if (number % i == 0) {
                return false
            }
        }
        return true
    }

    val br = BufferedReader(InputStreamReader(System.`in`))
    val n = br.readLine().toInt()
    val numbers = br.readLine().split(" ").map { it.toInt() }

    var cnt = 0

    for (number in numbers) {
        if (number == 1) {
            continue
        }

        if (isPrime(number)) {
            cnt += 1
        }
    }
    println(cnt)

}

2581 소수

1은 소수가 아닙니다~~

import java.io.BufferedReader
import java.io.InputStreamReader

//https://www.acmicpc.net/problem/2581
fun main() {
    fun isPrime(number: Int): Boolean {
        if (number == 1) {
            return false
        }
        for (i in 2 until number) {
            if (number % i == 0) {
                return false
            }
        }
        return true
    }

    val br = BufferedReader(InputStreamReader(System.`in`))
    val m = br.readLine().toInt()
    val n = br.readLine().toInt()

    val primes = arrayListOf<Int>()

    for (number in m..n) {
        if (isPrime(number)) {
            primes.add(number)
        }
    }
    if (primes.isEmpty()) {
        println(-1)
    } else {
        println(primes.sum())
        println(primes[0])
    }
}

11653 소인수 분해

import java.io.BufferedReader
import java.io.InputStreamReader

//https://www.acmicpc.net/problem/11653
fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    var n = br.readLine().toInt()

    while (n != 1) {
        for (i in 2..n) {
            if (n % i == 0) {
                println(i)
                n /= i
                break
            }
        }
    }

}

오늘도 수고하셨습니다. 모든 문제는 GIT에서 확인 가능합니다.~

profile
안녕하세요. 원딱입니다.

0개의 댓글