[프로그래머스] 나머지가 1이 되는 수 찾기

yoon Y·2022년 4월 13일
0

알고리즘 문풀

목록 보기
3/6

문제 출처

내 풀이

function solution(n) {
    const num = n-1;
    const arr = [];
    for(let i = 2; i < num; i++){
        if(num%i === 0){
            arr.push(i);
        }
    }
    return arr.length ? Math.min(...arr) : num
}

어떤 수로 n을 나누었을 때 나머지가 1이되려면 어떤 수는 n-1과 그 수의 약수가 된다.
n-1의 약수를 모두 구해 배열에 저장하고, 가장 작은 수를 리턴해줬다.
약수가 없으면 n-1을 그대로 리턴해줬다.

다른 사람 풀이

function solution(n) {
    for(let i = 2; i < n; i++) {
        if(n%i === 1 ) return i
    }
}

n-1로 나누었을 때 1이 남는다면 n-1의 약수로 나누어도 1이 남는다
가장 작은 수를 구해야하니까 2~n까지 돌면서 가장 먼저 조건에 맞는 수를 리턴한다

profile
#프론트엔드

0개의 댓글