안녕하세요..
10.13일에 시험보는 수험생이에요~
근데 이전 기출물제 풀다보니까...첨부파일에 잇는 알고리즘이 이해가 안가네요..
특히 k=k/2,그리고 판별조건중 J>K 이부분 이 이해가 안되네요.
설명 부탁드려요^^
안녕하세요.
1에서 500까지 증가하는 값, 즉 찾고자 하는 값들의 대상은 SU에 저장되어 있습니다.
K = SU/2를 하는 이유는 찾고자 하는 값의 약수 중 최대값을 찾기 위함입니다. 중간을 기준으로 앞쪽과 뒤쪽은 위치만 변경될 뿐 동일한 약수를 갖기 때문이죠.
J는 SU의 약수를 구하기 위해 사용되는 변수로 J로 SU를 나눠 나머지가 0이 되는 경우 해당 값(J)가 SU의 약수가 되므로 이때마다 SUM에 누적을 합니다. 이러한 작업은 J가 K보다 작거나 같을때까지만 수행하며,
J가 K보다 크면 SU가 문제에서 원하는 값인지, 즉 자신을 제외한 약수의 합과 자신이 같은지를 판별하기 위해
SU와 SUM이 같은지 비교한 후 같으면 CNT를 증가한 후 SU를 출력합니다.
오늘도 즐거운 하루 되세요.
"-
*2012-10-10 10:29:59
안녕하세요.
1에서 500까지 증가하는 값, 즉 찾고자 하는 값들의 대상은 SU에 저장되어 있습니다.
K = SU/2를 하는 이유는 찾고자 하는 값의 약수 중 최대값을 찾기 위함입니다. 중간을 기준으로 앞쪽과 뒤쪽은 위치만 변경될 뿐 동일한 약수를 갖기 때문이죠.
J는 SU의 약수를 구하기 위해 사용되는 변수로 J로 SU를 나눠 나머지가 0이 되는 경우 해당 값(J)가 SU의 약수가 되므로 이때마다 SUM에 누적을 합니다. 이러한 작업은 J가 K보다 작거나 같을때까지만 수행하며,
J가 K보다 크면 SU가 문제에서 원하는 값인지, 즉 자신을 제외한 약수의 합과 자신이 같은지를 판별하기 위해
SU와 SUM이 같은지 비교한 후 같으면 CNT를 증가한 후 SU를 출력합니다.
오늘도 즐거운 하루 되세요.
"