sub zeller { my ($y, $m, $d) = @_; return ($y + $y / 4 - $y / 100 + $y / 400 + (13 * $m + 8) / 5 + $d) % 7; } $s = 0; for ($y = 1901; $y <= 2000; ++$y) { for ($m = 1; $m <= 12; ++$m) { if (zeller($y, $m, 1) == 1) { ++$s; } } } print $s;