접근 방식이
1. i로 나눠서 나머지가 0이 아닐때 까지 n 을 나누기를 반복하며
2. 나눠서 나머지가 0이 아니면 i++해서 1.로 돌아감
3. 만약 n이 1이면 멈춤
인데...
일단 1번은 i로 나눠서 나머지가 0이 아닐때 까지인데,
while(n % i != 0)은 만약 n % i가 0이 아니면 실행한다 입니다. 이 때 멈추는 게 아니고요.
이대로 한다면, 예를 들어 72를 넣는다면, 2부터 시작합니다.
그런데, 72 % 2 == 0 이기 때문에 9번줄의 조건에 부합하지 않아 넘어갑니다.
3과 4도 마찬가지입니다.
그런데 5가 되면, 72 % 5 != 0이므로 루프 안으로 들어가서 연산을 합니다.
poroli0119 2년 전
우선 주어진 n값을 2로 나누는 것부터 시작합니다.
while문에 집어넣고
2로 나눠서 나머지가 0이 아닐때 까지 n 을 나누기를 반복하며 나눌때마다 2를 출력합니다.
나머지가 0이 아닌경우
다시 n을 3으로나누어 위 과정을 반복합니다.
n이 1이된 순간 반복문을 빠져나옵니다.
위와 같이 코드를 짜보았는데
엉뚱한 숫자가 나와 어디가 문제인지 알려주시면 정말 감사하겠습니다!