1번에서 8번째 줄에서 k ==j 에서 5하고 7이 어떻게 답에 포함되어 있는지 이해하기 어렵습니다.
while문을 반복하면 매번 while문을 다시 반복할때마다 j가 2로 초기화 되어서 2 와 3의 숫자밖에 달성을 못하는데
2 3 5 7 의 답중에서 5와 7이 어떻게 결과가 나오는지 이해하기 어렵습니다..
안녕하세요 길벗수험서 운영팀입니다.
(번호는 해설의 번호입니다.)
k값은 전체 반복문이 반복될 때 마다 1씩 증가합니다.
(3번) j는 위의 반복문이 반복될때 마다 2부터 나머지가 0이 나오는 수까지 반복되죠.
4, 6의 경우 2로 나누게 되면 k%j!=0이 거짓이 되어 빠져나가고 k==j가 아니므로 출력되지 않고 넘어갑니다.
5, 7의 경우 2부터 나누다가 자기수(5와 7)가 되었을 때에나 k%j!=0이 거짓이 되어 빠져나가고 k==j가 참이 되어 출력되게 됩니다.
디버깅표를 직접 작성해 보시거나 해설에 나와있는 디버깅표를 하나씩 체크하시면서 어느 부분에서 자신의 생각과 달라지는지 확인해보세요.
행복한 하루되세요 :)
-
관리자2020-10-12 11:50:44
안녕하세요 길벗수험서 운영팀입니다.
(번호는 해설의 번호입니다.)
k값은 전체 반복문이 반복될 때 마다 1씩 증가합니다.
(3번) j는 위의 반복문이 반복될때 마다 2부터 나머지가 0이 나오는 수까지 반복되죠.
4, 6의 경우 2로 나누게 되면 k%j!=0이 거짓이 되어 빠져나가고 k==j가 아니므로 출력되지 않고 넘어갑니다.
5, 7의 경우 2부터 나누다가 자기수(5와 7)가 되었을 때에나 k%j!=0이 거짓이 되어 빠져나가고 k==j가 참이 되어 출력되게 됩니다.
디버깅표를 직접 작성해 보시거나 해설에 나와있는 디버깅표를 하나씩 체크하시면서 어느 부분에서 자신의 생각과 달라지는지 확인해보세요.
행복한 하루되세요 :)
-
관리자2020-10-13 10:18:53
안녕하세요 길벗수험서 운영팀입니다.
디버깅표를 잘못읽으셨습니다.
일반적으로 디버깅표는 단순히 해당 변수의 값의 변화만을 기록합니다.
즉 반복횟수에 맞춰서 같은 열에 배치되거나 하는 것은 편의를 위한 다양한 기록 방법 중에 하나죠.
해당 방식대로 디버깅표를 구성하면 다음과 같습니다.
행복한 하루되세요 :)
-
*2020-10-12 15:01:30
답변 감사합니다!
저는 출력값이 k와 j가 일치하지 않는데 어떻게 2 3 5 7 이라고 출력값이 나오는지 모르겠습니다 ㅠ
그리고 j가 2 2 3 으로 반복하는거는 j++에 의해서도 while문을 반복할때 j를 2로 초기화하기 때문인가죠??