Largest palindrome product: Difference between revisions
Content added Content deleted
(Created page with "{{Draft task}} ;Task: <br>Task description is taken from Project Euler (https://projecteuler.net/problem=4) <br>A palindromic number reads the same both ways. The largest pal...") |
Thundergnat (talk | contribs) (→{{header|Raku}}: Add a) |
||
Line 6: | Line 6: | ||
<br>Find the largest palindrome made from the product of two 3-digit numbers. |
<br>Find the largest palindrome made from the product of two 3-digit numbers. |
||
<br><br> |
<br><br> |
||
=={{header|Raku}}== |
|||
<lang perl6>use Prime::Factor; |
|||
(^6).map: -> $oom { |
|||
LOOP: for (+(1 ~ (0 x $oom)) .. +(9 ~ (9 x $oom))).reverse.map({ +($_ ~ .flip) }) -> $pal { |
|||
for my @factors = $pal.&divisors.grep: {.chars == ($oom + 1)} { |
|||
next unless $pal div $_ ∈ @factors; |
|||
say "Largest palindromic product of two {$oom + 1}-digit integers: $_ × {$pal div $_} = $pal" and last LOOP; |
|||
} |
|||
} |
|||
}</lang> |
|||
<pre>Largest palindromic product of two 2-digit integers: 91 × 99 = 9009 |
|||
Largest palindromic product of two 3-digit integers: 993 × 913 = 906609 |
|||
Largest palindromic product of two 4-digit integers: 9901 × 9999 = 99000099 |
|||
Largest palindromic product of two 5-digit integers: 99681 × 99979 = 9966006699 |
|||
Largest palindromic product of two 6-digit integers: 999999 × 999001 = 999000000999</pre> |
|||
=={{header|Ring}}== |
=={{header|Ring}}== |
Revision as of 09:34, 3 November 2021
Largest palindrome product 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.
- Task
Task description is taken from Project Euler (https://projecteuler.net/problem=4)
A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two 3-digit numbers.
Raku
<lang perl6>use Prime::Factor; (^6).map: -> $oom {
LOOP: for (+(1 ~ (0 x $oom)) .. +(9 ~ (9 x $oom))).reverse.map({ +($_ ~ .flip) }) -> $pal { for my @factors = $pal.&divisors.grep: {.chars == ($oom + 1)} { next unless $pal div $_ ∈ @factors; say "Largest palindromic product of two {$oom + 1}-digit integers: $_ × {$pal div $_} = $pal" and last LOOP; } }
}</lang>
Largest palindromic product of two 2-digit integers: 91 × 99 = 9009 Largest palindromic product of two 3-digit integers: 993 × 913 = 906609 Largest palindromic product of two 4-digit integers: 9901 × 9999 = 99000099 Largest palindromic product of two 5-digit integers: 99681 × 99979 = 9966006699 Largest palindromic product of two 6-digit integers: 999999 × 999001 = 999000000999
Ring
<lang ring> load "stdlib.ring" see "working..." + nl
prodOld = 0 limitStart = 100 limitEnd = 999
for n = limitStart to limitEnd
for m = limitStart to limitEnd prodNew = n*m if prodNew > prodOld and palindrome(string(prodNew)) prodOld = prodNew first = n second = m ok next
next
see "The largest palindrome is:" + nl see "" + first + " * " + second + " = " + prodOld + nl see "done..." + nl </lang>
- Output:
working... The largest palindrome is: 913 * 993 = 906609 done...