poroli0119   2년 전

우선 주어진 n값을 2로 나누는 것부터 시작합니다.

while문에 집어넣고

2로 나눠서 나머지가 0이 아닐때 까지 n 을 나누기를 반복하며 나눌때마다 2를 출력합니다.

나머지가 0이 아닌경우

다시 n을 3으로나누어 위 과정을 반복합니다.


n이 1이된 순간 반복문을 빠져나옵니다.


위와 같이 코드를 짜보았는데

엉뚱한 숫자가 나와 어디가 문제인지 알려주시면 정말 감사하겠습니다!

dbshin59   2년 전

접근 방식이 

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년 전

제가 for문 조건식하고 헷갈린거 같네요..

상세한 답변 감사합니다!!

바로 해결되었습니다

댓글을 작성하려면 로그인해야 합니다.