aboutsummaryrefslogtreecommitdiff
path: root/challenge-007
diff options
context:
space:
mode:
authorKian-Meng, Ang <kianmeng@cpan.org>2019-05-12 22:17:00 +0800
committerKian-Meng, Ang <kianmeng@cpan.org>2019-05-12 22:17:00 +0800
commita2a77eb974e9882d48876289e771a093cf09b6f8 (patch)
tree5f9a89f5c799c55f28b08884c11a6079b42e2b71 /challenge-007
parent93c228ce3fc3bac8271cf353eec9e1e988cce4f5 (diff)
downloadperlweeklychallenge-club-a2a77eb974e9882d48876289e771a093cf09b6f8.tar.gz
perlweeklychallenge-club-a2a77eb974e9882d48876289e771a093cf09b6f8.tar.bz2
perlweeklychallenge-club-a2a77eb974e9882d48876289e771a093cf09b6f8.zip
Challenge #007 C1 answer and challenge #006 blog link
Diffstat (limited to 'challenge-007')
-rw-r--r--challenge-007/kian-meng-ang/perl5/ch-1.pl34
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-007/kian-meng-ang/perl5/ch-1.pl b/challenge-007/kian-meng-ang/perl5/ch-1.pl
new file mode 100644
index 0000000000..49dd189d1d
--- /dev/null
+++ b/challenge-007/kian-meng-ang/perl5/ch-1.pl
@@ -0,0 +1,34 @@
+#!/usr/bin/env perl
+
+use 5.010;
+use strict;
+use warnings;
+use utf8;
+
+sub generate_niven_sequence {
+ my %args = @_;
+
+ $args{from} //= 0;
+ $args{to} //= 50;
+
+ my @niven_numbers;
+ foreach my $number ($args{from}..$args{to}) {
+ next if ($number == 0);
+
+ my $sum_of_its_digits = 0;
+ $sum_of_its_digits += $_ foreach split //, $number;
+ push @niven_numbers, $number if ($number % $sum_of_its_digits == 0);
+ }
+
+ return \@niven_numbers;
+}
+
+say join q/|/, @{generate_niven_sequence(from => 0, to =>50)};
+
+1;
+
+__END__
+$ perl ch1-1.pl
+1|2|3|4|5|6|7|8|9|10|12|18|20|21|24|27|30|36|40|42|45|48|50
+# vi:et:sw=4 ts=4 ft=perl
+