n!과 k를 각각 소인수분해해서 각 겹치는 인수들 중에 지수가 더 작은 것끼리 곱하면 그것이 n!과 k의 공약수이다.
예를 들어, (n=4)!, k=18 이라면 4! 을 소인수분해하면 23x3 이고 18 은 2x32 이다. 겹치는 인수는 2, 3 이고 지수가 더 작은 것끼리 곱하면 21x31 = 6 이다.
매개변수 p를 두고 p=2 부터 $p^2 \le k$ 까지 늘려가면서 아래 작업을 수행한다.
n에서 pa 를 알아내고, k에서 pb 를 알아내서 result 에 pmin(a,b)를 중첩하여 곱셈했다.
댓글 2개:
p <= k^2가 아니라 p^2 <= k ㅇㅇ
근데 구글 블로그는 수정도 안되네..
댓글 달때마다 자동글방지 체크해야하고..
댓글 쓰기