整数 zzz の約数の個数を D[z]D[z]D[z] とおきます.一つずつ約数列挙すると O(NN)O(N\sqrt{N})O(NN) で間に合いません.ここで,ある整数 ddd を用いてエラトステネスの篩の要領で D[d],D[2d],D[3d],⋯D[d], D[2d], D[3d], \cdotsD[d],D[2d],D[3d],⋯ と ddd の倍数に訪問する度にインクリメントすることで約数の個数を効率的に数え上げることができます.実際に篩はしないことに注意すると,調和級数の計算量解析により O(NlogN)O(N \mathrm{log}N)O(NlogN) で解けます.