어떤 정수의 모든 약수 중 자신을 제외한 약수를 모두 합하면 자신과 같아지는 수가 있다.
예를 들어 6의 약수 1, 2, 3, 6 중 6을 제외한 1, 2, 3을 더하면 6이 되어 자신과 같아진다.
다음 그림은 4부터 1000까지의 정수 중 이러한 약수를 갖는 수를 찾아 출력하고 또한 그 개수를 구하여 출력하는 알고리즘이다.
<그림>의 괄호 안 내용에 가장 적합한 항목을 <답항 보기>에서 선택하여 해당 번호 (1)~(5)에 마크하시오.
사용하는 변수는 다음과 같다.
- LM : 자신을 제외한 약수의 합이 자신과 같은 수의 개수를 구하는 변수 - N, J, R : 계산 처리를 위한 변수
- K : 어떤 수의 모든 약수에서 자신을 제외한 약수 중 최대값 - SUM : 약수들의 합을 구하는 변수
약수의 의미 설명
어떤 수의 모든 약수 중 자신을 제외하면 그 절반값이 최대의 약수가 된다.(짝수의 경우) 예를 들어 20의 모든 약수는 1, 2, 4, 5, 10, 20인데 자신(20)을 제외하면 20의 절반값인 10이 최대의 약수가 된다.
함수 설명
- INT(X) : X보다 크지 않은 정수를 구하는 함수이다.
- MOD(A, B) : 정수 A를 정수 B로 나눠 나머지를 구하는 함수이다.
답 항 보 기 |
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
20 |
SUM |
||||||||||||
|
|
|
|
|
|
24 |
SUM+J |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||
31 |
MOD(N,J) |
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
38 |
(0=zero) |
39 |
LM+1 |
|
|
||||||||||||
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
[알고리즘 모범답안]
① |
31 |
② |
38 |
③ |
24 |
④ |
20 |
⑤ |
39 |
전 1,2 번 답을
38 31 24 20 39
이렇게 했는데 이렇게 하면 틀린거에요?? 이렇게해도 똑같이 나올텐데 ㅠㅠㅠ 이런경우 어떻게 되나요?
그리고 틀렸다면 왜 틀린것인지...
안녕하세요.
전에도 논란이 되었던 내용인데, 그 이후로는 처리조건에 가장 적합한 로직으로 연계되도록 구현하라는 조건이 추가되었습니다.
직사각형은 처리문입니다.
R = ( 1 )
마름모는 판단문입니다.
R = ( 2 )
처리문은 단순히 상수값을 변수에 저장하는 용도가 아니라 특정 처리를 수행한 후 그 결과를 변수에 저장합니다.
판단문은 특정 처리한 값을 비교하는데, 종종 처리를 하면서 비교하는 경우도 있긴 하지만 일반적으로는 처리된 값을 비교합니다.
그러므로
처리문에서는 R = MOD(N, J)와 같이 처리한 값을 저장하고
판단문에서는 R =0 과 같이 R이 0인지를 단순히 비교 판단만 할 수 있도록 구현하는 것이 가장 적합한 로직으로 연계되도록 구현하는 것입니다.
이로 인해 당시에도 1번 31, 2번 38만 정답으로 처리되었던 문제이니 이점 학습에 참고하세요.
오늘도 즐거운 하루 되세요.
"-
*2014-04-16 09:56:17
안녕하세요.
전에도 논란이 되었던 내용인데, 그 이후로는 처리조건에 가장 적합한 로직으로 연계되도록 구현하라는 조건이 추가되었습니다.
직사각형은 처리문입니다.
R = ( 1 )
마름모는 판단문입니다.
R = ( 2 )
처리문은 단순히 상수값을 변수에 저장하는 용도가 아니라 특정 처리를 수행한 후 그 결과를 변수에 저장합니다.
판단문은 특정 처리한 값을 비교하는데, 종종 처리를 하면서 비교하는 경우도 있긴 하지만 일반적으로는 처리된 값을 비교합니다.
그러므로
처리문에서는 R = MOD(N, J)와 같이 처리한 값을 저장하고
판단문에서는 R =0 과 같이 R이 0인지를 단순히 비교 판단만 할 수 있도록 구현하는 것이 가장 적합한 로직으로 연계되도록 구현하는 것입니다.
이로 인해 당시에도 1번 31, 2번 38만 정답으로 처리되었던 문제이니 이점 학습에 참고하세요.
오늘도 즐거운 하루 되세요.
"