diff options
| -rw-r--r-- | challenge-137/steven-wilson/perl/ch-2.pl | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/challenge-137/steven-wilson/perl/ch-2.pl b/challenge-137/steven-wilson/perl/ch-2.pl new file mode 100644 index 0000000000..67ff2d8919 --- /dev/null +++ b/challenge-137/steven-wilson/perl/ch-2.pl @@ -0,0 +1,32 @@ +#!/usr/bin/env perl +# Week 135 Task 2 +# Lychrel Number + +use strict; +use warnings; +use Test::More; + +ok( is_lychrel_number(56) == 0, "Test 56" ); +ok( is_lychrel_number(57) == 0, "Test 57" ); +ok( is_lychrel_number(59) == 0, "Test 59" ); +ok( is_lychrel_number(196) == 1, "Test 196" ); +done_testing(); + +sub is_lychrel_number { + my $number = shift; + my $max_iter = 500; + my $max_number = 10_000_000; + my $iter = 0; + my $is_lychrel_number = 1; + ( $number >= 10 && $number <= 1000 ) + or die "Number must be be between 10 an 1000\n"; + while ( $iter < $max_iter && $number < $max_number ) { + $number += reverse $number; + if ( $number == reverse $number ) { + $is_lychrel_number = 0; + last; + } + $iter++; + } + return $is_lychrel_number; +} |
