Pandigital prime: Difference between revisions

Content added Content deleted
(→‎{{header|Raku}}: updated for optional task)
(→‎{{header|Ring}}: streamlined, added optional task)
Line 510: Line 510:


=={{header|Ring}}==
=={{header|Ring}}==
<lang ring>
<lang ring>see "working..." + nl
for z = 1 to 0 step -1
load "stdlib.ring"
see "The largest " + z + "..7 pandigital prime is "
see "working..." + nl
hi = 7654321
see "The largest pandigital prime is:" + nl
if z = 0

hi = 76543201
pand = 0
limit = 7654321

for n = limit to 2 step -2
flag = 1
strn = string(n)
if isprime(n)
for m = 1 to len(strn)
ind = count(strn,string(m))
if ind != 1
flag = 0
ok
next
if flag = 1
pand = n
exit
ok
ok
ok
for n = hi to 0 step -18
strn = string(n)
pandig = true
for i = z to 7
if substr(strn, string(i)) = 0
pandig = false
exit
ok
next
if pandig and isprime(n)
see "" + n + nl
exit
ok
next
next
next
see "done..."


func isprime(n)
see "" + pand + nl
if n % 3 = 0

return false
see "done..." + nl
ok

i = 5
func count(cString,dString)
sum = 0
while i * i < n
if n % i = 0
while substr(cString,dString) > 0
sum++
return false
ok
cString = substr(cString,substr(cString,dString)+len(string(sum)))
end
i += 2
return sum
end
</lang>
return true</lang>
{{out}}
{{out}}
<pre>
<pre>
working...
The largest pandigital prime is:
The largest 1..7 pandigital prime is 7652413
7,652,413
The largest 0..7 pandigital prime is 76540231
done...
</pre>
</pre>