choko100   1년 전

많은 분들이 비슷한 방법으로 푸신 것 같은데, 코드만 보고는 풀이 방법이 이해가 가지 않아서 질문을 드립니다.

샘플로 https://www.acmicpc.net/source... 의 코드를 붙여넣었습니다.

9번째 라인의 (n - sum) % i == 0 이 어떻게 답을 알 수 있게 되는 것인가요?

혹시 이러한 방법을 부르는 명칭이 따로 있을까요?

zenith82114   1년 전

그냥 수학입니다.

a부터 m개의 연속된 자연수들을 더하면 n을 만들 수 있다고 합시다.

그 m개의 자연수들에서 전부 a씩 빼면

0, 1, 2, 3, ..., m-1 이 될 것이고 그 합은 m(m-1)/2 이므로

n = am + m(m-1)/2 입니다.

즉, 어떤 자연수 m을 골랐는데

1부터 m까지의 합을 n에서 뺀 결과가 0 또는 m의 양의 배수이면 됩니다.

위 코드의 i 변수로 m값의 후보를 찾는 것이고 1부터 i까지의 합이 sum입니다.

choko100   1년 전

@zenith82114 님 답변 감사드립니다!

덕분에 이해가 되었습니다!! 연속된 합을 제외하면 a * m 만 남게 되는 것이군요. 정말 감사합니다!

댓글을 작성하려면 로그인해야 합니다.