First perfect square in base n with n unique digits: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (patch a weasel gap) |
Thundergnat (talk | contribs) m (Nail down the spec a little tighter.) |
||
Line 1: | Line 1: | ||
Find the first perfect square in a given base '''N''' that has at least '''N''' digits and |
Find the first perfect square in a given base '''N''' that has at least '''N''' digits and |
||
exactly '''N''' ''significant unique'' digits |
exactly '''N''' ''significant unique'' digits when expressed in base '''N'''. |
||
E.G. In base '''10''', the first perfect square with at least '''10''' unique digits is '''1026753849''' ('''32043²'''). |
E.G. In base '''10''', the first perfect square with at least '''10''' unique digits is '''1026753849''' ('''32043²'''). |
||
Line 8: | Line 8: | ||
;Task |
;Task |
||
* Find and display here, on this page, the first perfect square in base '''N''', with '''N''' significant unique digits when expressed in base '''N''', for each of base '''2''' through '''12'''. |
* Find and display here, on this page, the first perfect square in base '''N''', with '''N''' significant unique digits when expressed in base '''N''', for each of base '''2''' through '''12'''. Display each number in the base '''N''' for which it was calculated. |
||
* (optional) Do the same for bases '''13''' through '''16'''. |
* (optional) Do the same for bases '''13''' through '''16'''. |
Revision as of 01:23, 21 May 2019
Find the first perfect square in a given base N that has at least N digits and exactly N significant unique digits when expressed in base N.
E.G. In base 10, the first perfect square with at least 10 unique digits is 1026753849 (32043²).
You may use analytical methods to reduce the search space, but the code must do a search. Do not use magic numbers or just feed the code the answer to verify it is correct.
- Task
- Find and display here, on this page, the first perfect square in base N, with N significant unique digits when expressed in base N, for each of base 2 through 12. Display each number in the base N for which it was calculated.
- (optional) Do the same for bases 13 through 16.
Perl 6
<lang perl6># Only search perfect squares that have at least N digits;
- smaller could not possibly match.
sub first-square (Int $n) {
my $start = (($n - 1)/2).exp($n).floor || 1; my $sq = ($start .. *).map( *² ).hyper.first: *.base($n).comb.Bag.elems >= $n; sprintf "Base %2d: %10s² == %s", $n, $sq.sqrt.base($n), $sq.base($n);
}
say "First perfect square with N unique digits in base N: "; say .&first-square for flat
2 .. 12, # required 13 .. 16 # optional
- </lang>
- Output:
First perfect square with N unique digits in base N: Base 2: 10² == 100 Base 3: 22² == 2101 Base 4: 33² == 3201 Base 5: 243² == 132304 Base 6: 523² == 452013 Base 7: 1431² == 2450361 Base 8: 3344² == 13675420 Base 9: 11642² == 136802574 Base 10: 32043² == 1026753849 Base 11: 111453² == 1240A536789 Base 12: 3966B9² == 124A7B538609 Base 13: 3828943² == 10254773CA86B9 Base 14: 3A9DB7C² == 10269B8C57D3A4 Base 15: 1012B857² == 102597BACE836D4 Base 16: 404A9D9B² == 1025648CFEA37BD9