한 부분수열의 에는 모든 원소에서 지수가 같은 소수 거듭제곱만 남는다. 예를 들어 , 에서는 만 남겨 를 얻는다.
이고 이면 라고 쓰자. 즉, 를 소인수분해한 뒤 각 소수 거듭제곱을 통째로 선택하거나 버려서 얻는 약수이다. 라 하고, 각 에 대해 를 구한다. 각 값의 빈도를 세고, 소수 거듭제곱들의 부분집합 곱을 열거하면 된다.
를 인 부분수열의 개수라고 하자. 먼저 로 초기화한다. 이후 순서로, 의 모든 약수 , 에 대해 에서 를 뺀다. 정답은
이며, 모든 계산은 을 법으로 한다.
최소 소인수와 의 거듭제곱을 미리 계산하면 한 케이스의 시간 복잡도는 , 공간 복잡도는 이다.
증명
소수 의 지수가 인 원소에 를 고르는 연산을 번 적용하면 그 지수는 이 된다. 지수가 모두 같으면 그대로 남기는 것이 최선이다. 서로 다르면 같은 값이 되기 위해 모두 이 되어야 한다. 따라서 에는 모든 원소에서 지수가 같은 양의 소수 거듭제곱만 남는다.
이에 따라 일 필요충분조건은 선택한 모든 원소 에서 인 것이다. 그러므로
이고 이면 이다. 따라서 큰 부터 처리하면 가 확정된 상태에서 그 기여를 작은 약수들에서 뺄 수 있다.
열거하는 약수는 일반적인 약수의 일부이므로, 전체 열거 횟수는 이하이다.