GOPHERSPACE.DE - P H O X Y
gophering on sdf.org
use strict;
# Let us find all the integer values of n satistying:
# n = int(n/2) + int(n/3) + int(n/5)
#
my @solutions=();
#
# Each integer, n, can be written as n=6m+k, when m is an integer
# and k is an integer in [0,5]
for (my $k=0;$k<6;$k++){
  # If n=6m+k:
  #  * int(n/2) = 3m + int(k/2)
  #  * int(n/3) = 2m + int(k/3)
  #  * int(n/5) = m + int(0.2m + 0.2k)
  # Their sum is:
  #    6m + int(k/2) + int(k/3) + int(0.2m + 0.2k)
  # We are looking for values of m, such that:
  #    6m + k = 6m + int(k/2) + int(k/3) + int(0.2m + 0.2k)
  # or k = int(k/2) + int(k/3) + int(0.2m + 0.2k)
  # Thus, k - int(k/2) - int(k/3) = int(0.2m + 0.2k)
  # Let us turn this into a pair of inqualities:
  #  k - int(k/2) - int(k/3) <= 0.2m + 0.2k
  #  k - int(k/2) - int(k/3) + 1 > 0.2m + 0.2k
  # Multiply by 5:
  #  5k - 5int(k/2) - 5int(k/3) <= m + k
  #  5k - 5int(k/2) - 5int(k/3) + 5 > m + k
  # Let us subtract k from both sides to find the range of values for m:
  #  4k - 5int(k/2) - 5int(k/3) <= m < 4k - 5int(k/2) - 5int(k/3) + 5
  # Now, let us write it as perl command
  
  my $l = 4*$k - 5*int($k/2) - 5*int($k/3);
  for (my $m = $l; $m<$l+5; $m++){
    push(@solutions, 6*$m + $k);
  }
}
@solutions = sort {$a<=>$b}@solutions;
print join("\n",@solutions) . "\n"