diff options
| author | chirvasitua <stuart-little@users.noreply.github.com> | 2021-03-01 07:33:14 -0500 |
|---|---|---|
| committer | chirvasitua <stuart-little@users.noreply.github.com> | 2021-03-01 07:33:14 -0500 |
| commit | 393f862ab4d9c2da07f5d89b1ebb3d625f07ffa4 (patch) | |
| tree | 9a0a30abbabefbb62638950b55b53e0b6e7029cf | |
| parent | 2e7bba2423ac520245be83ea15504303968b466b (diff) | |
| download | perlweeklychallenge-club-393f862ab4d9c2da07f5d89b1ebb3d625f07ffa4.tar.gz perlweeklychallenge-club-393f862ab4d9c2da07f5d89b1ebb3d625f07ffa4.tar.bz2 perlweeklychallenge-club-393f862ab4d9c2da07f5d89b1ebb3d625f07ffa4.zip | |
1st commit on 102_raku
| -rwxr-xr-x | challenge-102/stuart-little/raku/ch-1.p6 | 156 | ||||
| -rwxr-xr-x | challenge-102/stuart-little/raku/ch-2.p6 | 13 |
2 files changed, 169 insertions, 0 deletions
diff --git a/challenge-102/stuart-little/raku/ch-1.p6 b/challenge-102/stuart-little/raku/ch-1.p6 new file mode 100755 index 0000000000..4af2e9b74c --- /dev/null +++ b/challenge-102/stuart-little/raku/ch-1.p6 @@ -0,0 +1,156 @@ +#!/usr/bin/env perl6 +use v6; + +# run <script> <number> + +sub isSq($n) { + (my $m = $n.sqrt) == $m.Int +} + +sub isRare($n) { + my $rev=$n.Str.flip.Int; + isSq($n+$rev) && ($n >= $rev) && isSq($n-$rev) +} + +sub rarePals($d) { + my $halfDigs = ($d/2).ceiling; + my $rest = $d - $halfDigs; + return (10**($halfDigs-1)..^10**$halfDigs).map({ $_.Str ~ $_.Str.substr(0,$rest).flip }).grep({ isSq(2*($_.Int)) }) +} + +my $digs = @*ARGS[0].Int; + +($digs <= 22) && do { + my @basenrs=$=finish.lines; + my @all = (|(@basenrs.grep({ $_.chars == $digs })),|rarePals($digs)).sort; + for (@all) {.say}; + exit; +} + +for ((10**($digs-1)..^10**$digs).grep(*.&isRare)) {.say} + +=finish +65 +621770 +281089082 +2022652202 +2042832002 +868591084757 +872546974178 +872568754178 +6979302951885 +20313693904202 +20313839704202 +20331657922202 +20331875722202 +20333875702202 +40313893704200 +40351893720200 +200142385731002 +204238494066002 +221462345754122 +244062891224042 +245518996076442 +248359494187442 +403058392434500 +441054594034340 +816984566129618 +2078311262161202 +2133786945766212 +2135568943984212 +2135764587964212 +2135786765764212 +4135786945764210 +6157577986646405 +6889765708183410 +8052956026592517 +8052956206592517 +8191154686620818 +8191156864620818 +8191376864400818 +8650327689541457 +8650349867341457 +22542040692914522 +67725910561765640 +86965750494756968 +225342456863243522 +225342458663243522 +225342478643243522 +284684666566486482 +284684868364486482 +297128548234950692 +297128722852950692 +297148324656930692 +297148546434930692 +497168548234910690 +619431353040136925 +619631153042134925 +631688638047992345 +633288858025996145 +633488632647994145 +653488856225994125 +811865096390477018 +865721270017296468 +871975098681469178 +898907259301737498 +2042401829204402402 +2060303819041450202 +2420424089100600242 +2551755006254571552 +2702373360882732072 +2825378427312735282 +6531727101458000045 +6988066446726832640 +8066308349502036608 +8197906905009010818 +8200756128308135597 +8320411466598809138 +22134434735752443122 +22134434753752443122 +22134436953532443122 +22136414517954423122 +22136414971554423122 +22136456771730423122 +61952807156239928885 +61999171315484316965 +65459144877856561700 +208393425242000083802 +219518549668074815912 +257661195832219326752 +286694688797362186682 +837982875780054779738 +2414924301133245383042 +2414924323311045383042 +2414946523311023183042 +2576494891793995836752 +2576494893971995836752 +2620937863931054483162 +2620937863931054483162 +2620955641393276283162 +2622935621573476481162 +2622935643751276481162 +2622937641933274481162 +2622955841933256281162 +2622957843751254281162 +2727651947516658327272 +2747736918335953517072 +2788047668617596408872 +2788047848617776408872 +2788047868437576408872 +2788047888617376408872 +2939501759705522349392 +2939503375709360349392 +2939503537707740349392 +2939521359525562149392 +2939521557527542149392 +2939523577527340149392 +2939523779525320149392 +2959503377707360349192 +6344828989519887483525 +8045841652464561594308 +8045841654642561594308 +8655059576513659814468 +8655059772157639814468 +8655079374155679614468 +8655079574515659614468 +8888070771864228883913 diff --git a/challenge-102/stuart-little/raku/ch-2.p6 b/challenge-102/stuart-little/raku/ch-2.p6 new file mode 100755 index 0000000000..0408b8ba47 --- /dev/null +++ b/challenge-102/stuart-little/raku/ch-2.p6 @@ -0,0 +1,13 @@ +#!/usr/bin/env perl6 +use v6; + +# run <script> <number> + +sub hshCount($n) { + $n == 0 && return ""; + $n == 1 && return "#"; + my $stub = qq{$n} ~ "#"; + return hshCount($n-$stub.chars) ~ $stub; +} + +say hshCount(@*ARGS[0].Int) |
