Minimal steps down to 1: Difference between revisions
→{{header|Perl 6}}: Less verbose output
m (→{{header|zkl}}: update to match task) |
Thundergnat (talk | contribs) (→{{header|Perl 6}}: Less verbose output) |
||
Line 71:
my @max = %min.grep( {.value.<s> == $max} )».key.sort(+*);
if $limit == 2000 {
say "\nDivisors: {@div.perl}, subtract: $sub
"Below {comma $limit} found {+@max} number{+@max == 1 ?? '' !! 's'} " ~▼
steps(1..10);
}
"that require{+@max == 1 ?? 's' !! ''} at least $max steps.";
steps(@max);
@op.push: "{%min{$n
$n = %min{$n}<v>;
}
say "($m) {%min{$m}<s>} steps: ", @op.join(', ');▼
}
▲ say "($m) {%min{$m}<s>} steps: ", @op.join(', ');
}
}</lang>
{{out}}
<pre>Divisors: [2, 3], subtract: 1
Below 2,000 found 16 numbers that require at least 14 steps.▼
(1) 0 steps:
(2) 1 steps: /2=>1
Line 98 ⟶ 103:
(9) 2 steps: /3=>3, /3=>1
(10) 3 steps: -1=>9, /3=>3, /3=>1
(863) 14 steps: -1=>862, -1=>861, /3=>287, -1=>286, -1=>285, /3=>95, -1=>94, -1=>93, /3=>31, -1=>30, /3=>10, -1=>9, /3=>3, /3=>1
(1079) 14 steps: -1=>1078, /2=>539, -1=>538, /2=>269, -1=>268, /2=>134, /2=>67, -1=>66, /2=>33, /3=>11, -1=>10, -1=>9, /3=>3, /3=>1
Line 115 ⟶ 122:
(1943) 14 steps: -1=>1942, /2=>971, -1=>970, /2=>485, -1=>484, /2=>242, /2=>121, -1=>120, /2=>60, /2=>30, /3=>10, -1=>9, /3=>3, /3=>1
▲Below 50,000 found 3 numbers that require at least 22 steps.
(25919) 22 steps: -1=>25918, /2=>12959, -1=>12958, /2=>6479, -1=>6478, /2=>3239, -1=>3238, /2=>1619, -1=>1618, /2=>809, -1=>808, /2=>404, /2=>202, /2=>101, -1=>100, /2=>50, /2=>25, -1=>24, /2=>12, /2=>6, /2=>3, /3=>1
(31103) 22 steps: -1=>31102, /2=>15551, -1=>15550, /2=>7775, -1=>7774, /2=>3887, -1=>3886, /2=>1943, -1=>1942, /2=>971, -1=>970, /2=>485, -1=>484, /2=>242, /2=>121, -1=>120, /2=>60, /2=>30, /3=>10, -1=>9, /3=>3, /3=>1
(38879) 22 steps: -1=>38878, /2=>19439, -1=>19438, /2=>9719, -1=>9718, /2=>4859, -1=>4858, /2=>2429, -1=>2428, /2=>1214, /2=>607, -1=>606, /2=>303, /3=>101, -1=>100, /2=>50, /2=>25, -1=>24, /2=>12, /2=>6, /2=>3, /3=>1
Divisors: [2, 3], subtract: 2
Below 2,000 found 1 number that requires at least 17 steps.▼
(1) 0 steps:
(2) 1 steps: /2=>1
Line 143 ⟶ 138:
(9) 2 steps: /3=>3, /3=>1
(10) 3 steps: /2=>5, -2=>3, /3=>1
(1699) 17 steps: -2=>1697, -2=>1695, /3=>565, -2=>563, -2=>561, /3=>187, -2=>185, -2=>183, /3=>61, -2=>59, -2=>57, /3=>19, -2=>17, -2=>15, /3=>5, -2=>3, /3=>1
▲Below 50,000 found 1 number that requires at least 26 steps.
(45925) 26 steps: -2=>45923, -2=>45921, /3=>15307, -2=>15305, -2=>15303, /3=>5101, -2=>5099, -2=>5097, /3=>1699, -2=>1697, -2=>1695, /3=>565, -2=>563, -2=>561, /3=>187, -2=>185, -2=>183, /3=>61, -2=>59, -2=>57, /3=>19, -2=>17, -2=>15, /3=>5, -2=>3, /3=>1</pre>
|