4장 예상문제은행 1번 문제가 해설을 봐도 좀처럼 이해가 가지 않습니다..
왜 do 명령문에서 N 값이 4부터 시작하는지, 왜 do 명령문이 하나 더 있어야 하는지,
문제 전체를 이해를 못하겠습니다.
혹시 초보자를 위해서 아주 쉽게 설명해 주실 수 있으신가요?
안녕하세요.
문제는 4부터 1000까지의 정수 중 문제에서 요구한 조건을 만족하는 정수를 찾는 문제입니다.
우선 확인대상 자료를 4부터 1000까지 1씩 증가하면서 작업을 반복해야 하므로
바깥쪽 반복문(do)은 N = 4, 1000, 1이 됩니다.
또한
처리조건에서 최대의 약수에 대한 설명을 어떤 수의 절반값이라고 했으므로
N을 2로 나눈 값을 K에 저장해 K까지만 N의 약수를 구하는 작업을 수행하면 됩니다.
그래서 안쪽 반복문(do)은
J = 1, k, 1이 되어 J를 1부터 K까지 1씩 증가시키면서
약수인지 구하는 과정(MOD(N, J)를 구행하여 MOD(N, J)의 값, 즉 R에 저장된 값이 0이면 약수이므로
그 값을 SUM에 누적시킨 후
바깥쪽 반복문이 한 번 수행될 때마다 그 때까지 구해진 약수의 합인 SUM과 현재 처리중인 N의 값이 같은지 확인합니다.
같으면 문제에서 요구한 조건에 맞는 것이므로 그 값을 출력하고 그러한 값들의 개수(LM)을 누적한 후
다음 N의 값을 확이하는 과정을 반복하게 됩니다.
오늘도 즐거운 하루 되세요.
-
*2017-09-13 09:25:22
안녕하세요.
문제는 4부터 1000까지의 정수 중 문제에서 요구한 조건을 만족하는 정수를 찾는 문제입니다.
우선 확인대상 자료를 4부터 1000까지 1씩 증가하면서 작업을 반복해야 하므로
바깥쪽 반복문(do)은 N = 4, 1000, 1이 됩니다.
또한
처리조건에서 최대의 약수에 대한 설명을 어떤 수의 절반값이라고 했으므로
N을 2로 나눈 값을 K에 저장해 K까지만 N의 약수를 구하는 작업을 수행하면 됩니다.
그래서 안쪽 반복문(do)은
J = 1, k, 1이 되어 J를 1부터 K까지 1씩 증가시키면서
약수인지 구하는 과정(MOD(N, J)를 구행하여 MOD(N, J)의 값, 즉 R에 저장된 값이 0이면 약수이므로
그 값을 SUM에 누적시킨 후
바깥쪽 반복문이 한 번 수행될 때마다 그 때까지 구해진 약수의 합인 SUM과 현재 처리중인 N의 값이 같은지 확인합니다.
같으면 문제에서 요구한 조건에 맞는 것이므로 그 값을 출력하고 그러한 값들의 개수(LM)을 누적한 후
다음 N의 값을 확이하는 과정을 반복하게 됩니다.
오늘도 즐거운 하루 되세요.