diff options
Diffstat (limited to 'challenge-153')
| -rw-r--r-- | challenge-153/olivier-delouya/perl/ch-2.pl | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/challenge-153/olivier-delouya/perl/ch-2.pl b/challenge-153/olivier-delouya/perl/ch-2.pl new file mode 100644 index 0000000000..976c0db85a --- /dev/null +++ b/challenge-153/olivier-delouya/perl/ch-2.pl @@ -0,0 +1,20 @@ +# !/bin/perl is_factorion.pl NNN + +use strict; + +sub factorial + { + my $fact = 1; + $fact *= $_ foreach (2..$_[0]); + $fact; + } + +sub is_factorion + { + my ($len, $ord_0, $digfactsum) = (length($_[0]), ord('0'), 0); + for(my $i=0; $i<$len; $i++) { $digfactsum += factorial(vec($_[0], $i, 8) - $ord_0); } + # ^ minus the ascii digits range offset + (($digfactsum == $_[0])? 1:0); + } + +print is_factorion($ARGV[0]); |
