나머지가 1이 되는 수 찾기

문제

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

제한조건

  • 3 ≤ n ≤ 1,000,000

풀이방향

  • 입력된 값을 2부터 순차적으로 나눠서 나머지가 1인 값을 찾는다.

문제풀이

findRemainderOne.js
1
2
3
4
5
6
7
8
function findRemainderOne(n) {
let x = 1;
while(x++) {
if (n % x === 1) return x;
}
}

export { findRemainderOne };
findRemainderOne.test.js
1
2
3
4
5
6
7
8
9
10
11
12
import { findRemainderOne } from "../src/findRemainderOne";

describe("findRemainderOne", () => {
it("should return 3 for 10", () => {
expect(findRemainderOne(10)).toBe(3);
});

it("should return 11 for 12", () => {
expect(findRemainderOne(12)).toBe(11);
});
});

문제출처

  • 프로그래머스

다른 풀이

1
2
3
4
5
6
7
const solution = (n) => {
for (let i = 2; i < n; i++) {
if (n % i === 1) {
return i;
}
}
};