Pandigital prime: Difference between revisions

m
m (→‎{{header|REXX}}: optimized the (DO K loop) search.)
Line 315:
<lang julia>using Primes
 
 
function pandigitals(Nfirstdig, lastdig)
mask = primesmask(10^N(lastdig - firstdig + 1))
ret = Int[]
for j in Nlastdig:-1:1, i in 10^j:-1:10^(j-1)firstdig
ifn mask[i]= j - firstdig + 1
for i in evalpoly(10, firstdig:j):-1:evalpoly(10, j:-1:firstdig)
d = digits(i)
if length(d) == j && all(x -> count(y -> y == x, d) == 1, 1:j)mask[i]
push!(ret,d = digits(i)
if length(d) == n && all(x -> count(y -> y == x, d) == 1, firstdig:j)
return i
end
end
end
end
return ret0
end
 
for firstdigit in [1, 0]
println("The largest prime containing numerals 1 through n of length n is ", maximum(pandigitals(9)))
println("Max pandigital prime over [$firstdigit, 9] is ", pandigitals(firstdigit, 9))
</lang>{{out}}<pre>The largest prime containing numerals 1 through n of length n is 7652413</pre>
end
</lang>{{out}}
<pre>
 
function pandigitals(firstdig, lastdig)
mask = primesmask(10^(lastdig - firstdig + 1))
for j in lastdig:-1:firstdig
n = j - firstdig + 1
for i in evalpoly(10, firstdig:j):-1:evalpoly(10, j:-1:firstdig)
if mask[i]
d = digits(i)
if length(d) == n && all(x -> count(y -> y == x, d) == 1, firstdig:j)
return i
end
end
end
end
return 0
end
 
for firstdigit in [1, 0]
println("Max pandigital prime over [$firstdigit, 9] is ", pandigitals(firstdigit, 9))
end
<pre>
Max pandigital prime over [1, 9] is 7652413
Max pandigital prime over [0, 9] is 76540231
</pre>
 
=={{header|Perl}}==
4,102

edits