From 477911d1172536cb4c4351f363936f8dc1870e29 Mon Sep 17 00:00:00 2001 From: Steven Wilson Date: Tue, 2 Nov 2021 16:31:21 +0000 Subject: add solution week 137 task 2 in perl --- challenge-137/steven-wilson/perl/ch-2.pl | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 challenge-137/steven-wilson/perl/ch-2.pl 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; +} -- cgit