안녕하세요 길벗수험서 운영팀입니다.
질문주실 때, 회원님이 생각하신 것도 같이 알려주시면 좀더 구체적인 답변이 가능할 것 같습니다.
(예를 들어, 왜 C가 아니라 C-1이 들어가나요? 또는 2번에 5를 넣어도 답이 되나요? 정도)
2번 빈칸이 있는 for문과 그 아래 printf문까지는 소인수분해한 결과를 출력합니다.
위의 while문에서 입력한 정수(n)를 소인수 분해할 때 마다 변수 c에 1씩 더하여(해설579p 8번), 소인수 분해된 수를 저장할 배열의 위치를 지정하였습니다.
6을 넣었다고 가정하겠습니다. 그럼 배열 s[0]에는 2가, s[1]에는 3이 들어가고 c는 1이됩니다.
이때 for문을 수행하면 s[0]인 2와 X를 출력합니다. (2X)
for문이 종료된 후 그 아래 printf문까지 출력하게 되면 (2X3)이 되겠네요.
해설의 14,15번 줄만 실행하여 출력하지 않은 것은 'X'표시를 중간에만 표시해주기 위한 것입니다.
만약 16번 줄을 지우고, 14번에서 C-1이 아닌 C까지 출력하였다면 '2X3X'가 출력되어 버리죠.
행복한 하루 되세요 :)
-
관리자2019-01-23 10:30:47
안녕하세요 길벗수험서 운영팀입니다.
질문주실 때, 회원님이 생각하신 것도 같이 알려주시면 좀더 구체적인 답변이 가능할 것 같습니다.
(예를 들어, 왜 C가 아니라 C-1이 들어가나요? 또는 2번에 5를 넣어도 답이 되나요? 정도)
2번 빈칸이 있는 for문과 그 아래 printf문까지는 소인수분해한 결과를 출력합니다.
위의 while문에서 입력한 정수(n)를 소인수 분해할 때 마다 변수 c에 1씩 더하여(해설579p 8번), 소인수 분해된 수를 저장할 배열의 위치를 지정하였습니다.
6을 넣었다고 가정하겠습니다. 그럼 배열 s[0]에는 2가, s[1]에는 3이 들어가고 c는 1이됩니다.
이때 for문을 수행하면 s[0]인 2와 X를 출력합니다. (2X)
for문이 종료된 후 그 아래 printf문까지 출력하게 되면 (2X3)이 되겠네요.
해설의 14,15번 줄만 실행하여 출력하지 않은 것은 'X'표시를 중간에만 표시해주기 위한 것입니다.
만약 16번 줄을 지우고, 14번에서 C-1이 아닌 C까지 출력하였다면 '2X3X'가 출력되어 버리죠.
행복한 하루 되세요 :)