- #!/usr/bin/perl
-
- use primes;
-
- my $k;
-
- sub triangle {
- my $n = shift;
- return $n*($n+1)/2;
- }
-
- sub number_of_divisors {
- my ($n, $k, $mul) = (shift, 0, 1);
- my $factors = primes::factor($n);
-
- for $k (keys %$factors) {
- $mul *= $factors->{$k}+1;
- }
-
- return $mul;
- }
-
-
- my ($left, $right, $ticker);
- $ticker=0;
-
- for $k (12300..12400) {
-
- print '.' if $ticker % 100 == 0;
- $ticker++;
-
- if ($k % 2 == 0) {
- $left = number_of_divisors($k/2);
- $right= number_of_divisors($k+1);
- }
- else {
- $left = number_of_divisors($k);
- $right= number_of_divisors(($k+1)/2);
- }
-
- if ($left*$right >= 500) {
- print $k;
-
- last;
- }
- }