diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-01-14 17:11:54 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-01-14 17:11:54 +0000 |
| commit | 6ce7466c475fbfe25b23992049fdf15153dc34dd (patch) | |
| tree | 43448a0d102d20ee5d39d02e2da4a6fb06f4e5d3 /challenge-043/markus-holzer/raku/lib/Math/SelfDescriptiveNumbers.pm6 | |
| parent | f001382ae5350dc2aad8ef86c47c8f886ad3dcaf (diff) | |
| download | perlweeklychallenge-club-6ce7466c475fbfe25b23992049fdf15153dc34dd.tar.gz perlweeklychallenge-club-6ce7466c475fbfe25b23992049fdf15153dc34dd.tar.bz2 perlweeklychallenge-club-6ce7466c475fbfe25b23992049fdf15153dc34dd.zip | |
- Moved lib to the right place.
Diffstat (limited to 'challenge-043/markus-holzer/raku/lib/Math/SelfDescriptiveNumbers.pm6')
| -rw-r--r-- | challenge-043/markus-holzer/raku/lib/Math/SelfDescriptiveNumbers.pm6 | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/challenge-043/markus-holzer/raku/lib/Math/SelfDescriptiveNumbers.pm6 b/challenge-043/markus-holzer/raku/lib/Math/SelfDescriptiveNumbers.pm6 new file mode 100644 index 0000000000..974f0c532a --- /dev/null +++ b/challenge-043/markus-holzer/raku/lib/Math/SelfDescriptiveNumbers.pm6 @@ -0,0 +1,33 @@ +unit module Math::SelfDescriptiveNumbers; + +multi sub is-self-descriptive( Int $number, Int $base ) is export { + is-self-descriptive( :$number, :$base ); +} + +multi sub is-self-descriptive( Int :$number, Int :$base ) is export { + $number.base( $base ) ∈ self-descriptive-numbers-of( $base ); +} + +multi sub is-self-descriptive( Str $number, Int $base ) is export { + is-self-descriptive( :$number, :$base ); +} + +multi sub is-self-descriptive( Str :$number, Int :$base ) is export { + $number ∈ self-descriptive-numbers-of( $base ); +} + +sub self-descriptive-numbers is export { + ( 1 .. 36 ).map( -> $base { ( $base, self-descriptive-numbers-of( $base ) ) }); +} + +sub self-descriptive-numbers-dec is export { + ( 1 .. 36 ).map( -> $base { ( $base, self-descriptive-numbers-of( $base ).map({ parse-base($_, $base ) }) ) }); +} + +multi sub self-descriptive-numbers-of( Int $base where $_ ~~ 1|2|3|6 ) is export { () } +multi sub self-descriptive-numbers-of( Int $base where $_ == 4 ) is export { ('1210', '2020') } +multi sub self-descriptive-numbers-of( Int $base where $_ == 5 ) is export { ('21200') } +multi sub self-descriptive-numbers-of( Int $base ) is export { + ( ($base - 4).base( $base ) ~ "21" ~ ( '0' x ($base - 7) ) ~ '1000' ) +} + |
