소수의 배수를 세기
1부터 n까지 p의 배수는 ⌊n/p⌋개이고 각각 소인수 p를 적어도 하나씩 준다. p²의 배수는 p를 하나 더 주며 p³의 배수는 다시 하나를 더 준다. 이런 추가 기여를 단계별로 더하면 n!에 포함된 p의 전체 지수를 얻는다.
직접 곱하지 않고 계산
10!에서 2의 지수는 ⌊10/2⌋+⌊10/4⌋+⌊10/8⌋=5+2+1=8이다. 5의 지수는 ⌊10/5⌋=2다. 따라서 큰 계승 값을 실제로 만든 뒤 나누어 보지 않아도 원하는 소인수의 지수를 계산할 수 있다.
끝의 0과 연결
십진수에서 끝의 0 하나는 소인수 2와 5가 한 쌍씩 있어야 생긴다. n!의 경우 2가 5보다 적지 않으므로 끝의 0 개수는 5의 지수로 구한다. 앞의 예에서 10!은 끝의 0이 두 개다. 다른 진법에서는 그 진법의 밑을 소인수분해해 필요한 각 지수를 비교해야 한다.
소수 조건의 중요성
p 대신 합성수를 넣어 같은 바닥함수 합을 계산한다고 그 합성수의 최대 거듭제곱 지수가 되는 것은 아니다. 합성수의 소인수별 지수를 구한 뒤 밑의 지수 비율을 고려해야 한다. 계산에서는 p의 거듭제곱을 계속 곱하는 대신 n을 p로 반복해서 나누는 방식으로 넘침을 피할 수 있다.