#! /usr/bin/perl -wl # sum of the numbers in series 1..n that are multiple of either 3 or 5 use List::Util qw(sum sum0); sub f1 { sum0 grep { $_ % 3 == 0 or $_ % 5 == 0 } 1 .. shift; } sub f2 { sum map { $_ * (map $_*($_+1)/2, int $_[0]/abs)[0] } (3, 5, -15); } # while (<>) {...} for (1 .. 23) { print join ' ', $_, f1($_), f2($_); }