<?php

function divisors($n) {
  // Shortcut evaluation for 1.
  if ($n === 1) {
    return 1;
  }
  $candidates = range(2, (int) ceil(sqrt($n)));

  $curr = $n;
  $divs = [1, $curr];
  while ($candidates) {
    $candidate = array_shift($candidates);
    if ($curr % $candidate == 0) {
      $divs[$candidate] = $candidate;
      $other = $curr / $candidate;
      $divs[$other] = $other;
    }
  }
  return count($divs);
}