문제설명
자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
제한사항
3 ≤ n ≤ 1,000,000
진행
반복문과 조건문을 사용하면 될것 같다
이전에 했던 약수의 합 반복문에서
fun solution(n: Int): Int {
var answer = 0
var num = 1
while (num <= n){
if(n % num == 0){
answer += num
}
num++
}
return answer
}
나머지가 1이 될때 반복문을 종료 하게 만들면 끝
while (num <= n){
if(n % num == 1){
answer = num
break
}
num++
}
return answer
코드
package com.example.codekata
fun main() {
var num1: Int = 0
println("숫자를 입력하세요.")
num1 = readln().toIntOrNull() ?:0
if (num1 > 1000000){
println("숫자가 너무 큽니다")
}
else if (num1 <= 3){
println("3이상 이어야 합니다")
}
else
println("${solution(num1)}")
}
fun solution(n: Int): Int {
var answer = 0
var num = 1
while (num <= n){
if(n % num == 1){
answer = num
break
}
num++
}
return answer
}