aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-07-22 15:19:08 +0100
committerGitHub <noreply@github.com>2022-07-22 15:19:08 +0100
commit5e68ce7fa6b7f02a5054cb79ed40fc9bdc1488ef (patch)
tree626f466ef39e07f8543be8c4f0d341cf92721804
parent5d381eb4573dc8c8ff8b99baedd9d5d581f174a1 (diff)
parent8338bbde6d744bbee9cc95b08bfbc371f901d331 (diff)
downloadperlweeklychallenge-club-5e68ce7fa6b7f02a5054cb79ed40fc9bdc1488ef.tar.gz
perlweeklychallenge-club-5e68ce7fa6b7f02a5054cb79ed40fc9bdc1488ef.tar.bz2
perlweeklychallenge-club-5e68ce7fa6b7f02a5054cb79ed40fc9bdc1488ef.zip
Merge pull request #6478 from nicomen/challenge-174
Add task #1 for Weekly challenge #174
-rw-r--r--challenge-174/nicolas-mendoza/README2
-rw-r--r--challenge-174/nicolas-mendoza/perl/ch-1.pl30
2 files changed, 32 insertions, 0 deletions
diff --git a/challenge-174/nicolas-mendoza/README b/challenge-174/nicolas-mendoza/README
new file mode 100644
index 0000000000..7765fa324c
--- /dev/null
+++ b/challenge-174/nicolas-mendoza/README
@@ -0,0 +1,2 @@
+Solution by Nicolas Mendoza
+
diff --git a/challenge-174/nicolas-mendoza/perl/ch-1.pl b/challenge-174/nicolas-mendoza/perl/ch-1.pl
new file mode 100644
index 0000000000..766752141e
--- /dev/null
+++ b/challenge-174/nicolas-mendoza/perl/ch-1.pl
@@ -0,0 +1,30 @@
+#!/u7sr/bin/env perl
+
+use v5.34;
+
+use strict;
+use warnings;
+
+my $limit = 10**10; # Should be within a 10 digit bumber
+my @found = (); # store found numbers
+
+my @too_high_number_prefixes;
+for my $number (0..$limit) { # iterate thru all numbers
+ my $sum = 0; # store a temp sum
+ my @n = split //, $number; #
+ for (my $i = @n; $i > 0; $i--) { # iterate thru every digit
+ my $c = $n[$i-1]; # pick out digit
+ my $s = $c**$i;
+ $sum += $s;
+ if ($sum > $number) { # go to next number if sum has become bigger already
+ last;
+ }
+ }
+ if ($sum == $number) { # Add to found array if it's a Disarium number
+ push @found, $sum;
+ if (@found == 19) { # bail out when we found 19
+ say "@found";
+ exit;
+ }
+ }
+}