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"