N의 약수 중 하나가 m이라고 했을 때, 다른 약수는 N/m이 되므로 하나의 약수를 알면 다른 하나의 존재가 보장이 된다.
그럼 1부터 √N까지 구하면 약수 절반의 개수를 구할 수 있다는 걸 알 수 있다.
int count = 0; for (int i = 1; i * i <= N; i++) { if (i * i == N) count++; else if (N % i == 0) count += 2; }