Super-d numbers
Super-d numbers is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.
A super-d number is a positive integer n such that d × n^d has at least d consecutive digits d where
2 ≤ d ≤ 9
For instance, 753 is a super-3 number because 3 × 753^3 = 1280873331.
- Task
- For d=2 through d=6, show the first 10 super-d numbers.
- Extra credit
- Show the first 10 super-7, super-8, and/or super-9 numbers. (Optional)
- See also
Factor
<lang factor>USING: arrays formatting io kernel lists lists.lazy math math.functions math.ranges math.text.utils prettyprint sequences
IN: rosetta-code.super-d
- super-d? ( seq n d -- ? ) tuck ^ * 1 digit-groups subseq? ;
- super-d ( d -- list )
[ dup <array> ] [ drop 1 lfrom ] [ ] tri [ super-d? ] curry with lfilter ;
- super-d-demo ( -- )
10 2 6 [a,b] [ dup "First 10 super-%d numbers:\n" printf super-d ltake list>array [ pprint bl ] each nl nl ] with each ;
MAIN: super-d-demo</lang>
- Output:
First 10 super-2 numbers: 19 31 69 81 105 106 107 119 127 131 First 10 super-3 numbers: 261 462 471 481 558 753 1036 1046 1471 1645 First 10 super-4 numbers: 1168 4972 7423 7752 8431 10267 11317 11487 11549 11680 First 10 super-5 numbers: 4602 5517 7539 12955 14555 20137 20379 26629 32767 35689 First 10 super-6 numbers: 27257 272570 302693 323576 364509 502785 513675 537771 676657 678146
Perl 6
2 - 6 take a few seconds, 7 & 8 take a few minutes; I got tired of waiting for 9.
<lang perl6>my \n = 10;
sub super ($d) {
my $run = $d x $d; "First {n} super-{$d} numbers:\n{ (^Inf .map( $d * * ** $d ).grep: *.index($run), :k)[^n] }\n"
}
- Required
.say for (2..6).map: -> $d { super $d }
- Optional
.say for (7..8).map: -> $d { super $d }</lang>
First 10 super-2 numbers: 19 31 69 81 119 127 131 169 181 190 First 10 super-3 numbers: 261 462 471 558 753 1046 1471 1645 1752 1848 First 10 super-4 numbers: 1168 4972 7423 7752 8431 11317 11487 11549 11680 16588 First 10 super-5 numbers: 4602 5517 7539 12955 14555 20137 20379 26629 32767 35689 First 10 super-6 numbers: 27257 272570 302693 323576 364509 502785 513675 537771 676657 678146 First 10 super-7 numbers: 140997 490996 1184321 1259609 1409970 1783166 1886654 1977538 2457756 2714763 First 10 super-8 numbers: 185423 641519 1551728 1854230 6415190 12043464 12147605 15517280 16561735 18542300