From fb336b6a2b1db6345faa55660438eeec5222ac3d Mon Sep 17 00:00:00 2001 From: Cris-HD <59669732+Cris-HD@users.noreply.github.com> Date: Sun, 1 Mar 2020 17:24:43 +0100 Subject: Added challenge --- challenge-049/cristian-heredia/perl/ch-1.pl | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 challenge-049/cristian-heredia/perl/ch-1.pl diff --git a/challenge-049/cristian-heredia/perl/ch-1.pl b/challenge-049/cristian-heredia/perl/ch-1.pl new file mode 100644 index 0000000000..7e2651b6bc --- /dev/null +++ b/challenge-049/cristian-heredia/perl/ch-1.pl @@ -0,0 +1,44 @@ +use strict; +use warnings; +no warnings 'recursion'; + +#Smallest Multiple +#Write a script to accept a positive number as command line argument and print the smallest multiple of the given number consists of digits 0 and 1. + +#For example: + +#For given number 55, the smallest multiple is 110 consisting of digits 0 and 1. +my $number; +my $result; +my $multiple = 2; + +requestNumber(); +sub requestNumber { + print "Enter a positive number:\n"; + $number = ; + checkNumber(); +} + +sub checkNumber { + if ( $number =~ /^\+?\d+$/ ) { + smallestMultiple(); + } else { + requestNumber(); + } +} + +sub smallestMultiple { + $result = $number * $multiple; + checkValues(); +} + +sub checkValues { + if ( $result =~ /^[01]+$/ ) { + $number=~ s/^\s+|\s+$//g; + print "The smallest multiple is $result\n$number * $multiple = $result\n"; + } + else { + $multiple++; + smallestMultiple(); + } +} -- cgit