diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-01-25 12:05:03 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-25 12:05:03 +0000 |
| commit | 8bf304e89e5728895c7087913ca0f9a083abd91b (patch) | |
| tree | e88d20fd9fbfd7d956c632906cbb0c8f9da17fc7 | |
| parent | c75e2894588cc7d2e52cb0159e556ee1f3abf7c7 (diff) | |
| parent | 5510a3b1a1e2f17fe73d0882fc24dd3e87234e46 (diff) | |
| download | perlweeklychallenge-club-8bf304e89e5728895c7087913ca0f9a083abd91b.tar.gz perlweeklychallenge-club-8bf304e89e5728895c7087913ca0f9a083abd91b.tar.bz2 perlweeklychallenge-club-8bf304e89e5728895c7087913ca0f9a083abd91b.zip | |
Merge pull request #5566 from ccntrq/challenge-148
Add solution for challenge 148 task 1
| -rw-r--r-- | challenge-148/alexander-pankoff/perl/ch-1.pl | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/challenge-148/alexander-pankoff/perl/ch-1.pl b/challenge-148/alexander-pankoff/perl/ch-1.pl new file mode 100644 index 0000000000..824e05188c --- /dev/null +++ b/challenge-148/alexander-pankoff/perl/ch-1.pl @@ -0,0 +1,40 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use feature qw'say signatures'; +no warnings qw'experimental::signatures'; + +run() unless caller(); + +# Write a script to generate all Eban Numbers <= 100. +# +# An Eban number is a number that has no letter āeā in it when the number is spelled in English (American or British). +# +# Example +# +# 2, 4, 6, 30, 32 are the first 5 Eban numbers. + +# one two three four five six seven eight nine ten eleven twelve thirteen +# ten twenty thirty fourty fifty sixty seventy eighty ninety + +sub run() { + say join( ", ", eban_numbers() ); +} + +sub eban_numbers { + my @eban = grep { is_eban($_) } 1 .. 100; + return @eban; + +} + +# only works for numbers up between 1 and 100 +sub is_eban($n) { + if ( length $n == 1 ) { + return grep { $n == $_ } qw(0 2 4 6); + } + if ( length $n == 2 ) { + my ( $n1, $n2 ) = split( '', $n ); + return ( grep { $n1 == $_ } qw{3 4 5 6} ) && is_eban($n2); + } + return 0; +} |
