IT 성장일기

[Programmers] 나머지가 1이 되는 수 찾기 본문

Algorithm/Programmers

[Programmers] 나머지가 1이 되는 수 찾기

고 양 2025. 2. 12. 15:06
반응형
나머지가 1이 되는 수 찾기

문제 설명

자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.

제한사항

3 ≤ n ≤ 1,000,000

풀이

function solution(n) {
    if ( !validNumber(n) ) {
        console.error('올바르지 않은 값이 입력되었습니다.');
        return false
    }
    
    if ( !validRangeOfNumber(n) ) {
        console.error('올바르지 않은 수가 입력되었습니다.');
        return false
    }
    
    return getMinimalNumber(n);
}

function validNumber(n) {
    return (n !== null || n !== 'undefined') && (typeof n === 'number')   
}

function validRangeOfNumber(n) {
    return n >= 3 && n <= 1000000;
}

function isPrime(number) {
	if(number === 1) return false;
 	for(let i = 2; i <= parseInt(Math.sqrt(number)); i++) {
  		if(number % i === 0) return false;
	}
    return true;
}

function getMinimalNumber(number) {
    let minimal = number;
    for(let i = 1; i < number; i++) {
        if( !isPrime(i) ) continue;
        if( number % i === 1 ) {
            minimal = i;
            break;
        }
    }
    return minimal
}

너무 어렵게 풀었어요...

반응형