diff options
| author | Cris-HD <59669732+Cris-HD@users.noreply.github.com> | 2020-03-01 17:24:43 +0100 |
|---|---|---|
| committer | Cris-HD <59669732+Cris-HD@users.noreply.github.com> | 2020-03-01 17:24:43 +0100 |
| commit | fb336b6a2b1db6345faa55660438eeec5222ac3d (patch) | |
| tree | fa1178f2d10af1405aac0c53d0f808efdc2ef334 | |
| parent | 29183b30851f09a0975cd4898a9d3ebe503568ff (diff) | |
| download | perlweeklychallenge-club-fb336b6a2b1db6345faa55660438eeec5222ac3d.tar.gz perlweeklychallenge-club-fb336b6a2b1db6345faa55660438eeec5222ac3d.tar.bz2 perlweeklychallenge-club-fb336b6a2b1db6345faa55660438eeec5222ac3d.zip | |
Added challenge
| -rw-r--r-- | challenge-049/cristian-heredia/perl/ch-1.pl | 44 |
1 files changed, 44 insertions, 0 deletions
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 = <STDIN>; + 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(); + } +} |
