| [ QuizWit ] in KIDS 글 쓴 이(By): reality (얄이) 날 짜 (Date): 1998년 6월 29일 월요일 오전 08시 59분 57초 제 목(Title): Re: re]reality 아 문제가 의외로 쉽다고 생각해서 컴퓨터 앞에서 그냥 풀었는 데... 제가 미처 생각하지 못한 점이 있었군요... thief 님께서 말씀하신 것처럼 k값만큼의 차를 같는 정수의 쌍을 우선 구해야합니다. -> 여기서, 저는 단순히 m차이가 나면 된다고 그냥 생각하고 넘어갔지요... 풀이의 틀린 점은 그 점에 있다고 생각되므로 그 부분만 수정하도록 하지요... 총 2m개의 자연수를 2개씩 차가 k가 되도록 묶는 가짓수가 고려되어야 하지요... 여기서, 하나의 자연수가 결정되면, 그것과 차를 k로 가지는 정수는 두가지가 될 수 있습니다. 그러나, 1부터 2m까지이므로, 중간에서 아무렇게나 나누다 보면 양쪽 끝부분(1 , 2m) 쪽에서 제대로 나누어지지 않을 수도 있게 되지요... 예를 들면, m=9, k=3일 때, (5,8)을 묶으면 2는 아무것과도 쌍을 이룰 수 없습니다. 따라서, 앞에서부터(1부터) 묶기 시작하면 2m개의 정수는 처음부터 순서대로 2k개씩이 묶여 나가게 됩니다. 물론, 끝까지 정확하게 묶을 수 있어야하므로 2k은 2m의 약수가 되어야하고, k는 m의 약수가 되어야 합니다. 그리고, 그 각각은 한가지 방법으로 묶이게 됩니다. 따라서, 약수의 가짓수가 더 필요하므로, 약수의 갯수를 편의상 f(m) 이라고 하면, f(m) * (m-1)! 이 되겠지요. 문제는 m= 999 = 3^2 * 111 = 3^3 * 37이므로 (1+3) * (1+1) = 8 이 되므로, 8 * 998! 이 되겠지요... |