48 lines
1.0 KiB
Lua
48 lines
1.0 KiB
Lua
max_number = 1000000
|
|
|
|
numbers = {}
|
|
for i = 2, max_number do
|
|
numbers[i] = i;
|
|
end
|
|
|
|
for i = 2, max_number do
|
|
for j = i+1, max_number do
|
|
if numbers[j] ~= 0 and j % i == 0 then numbers[j] = 0 end
|
|
end
|
|
end
|
|
|
|
max_prime_left, max_prime_right = 2, 2
|
|
for i = 2, max_number do
|
|
if numbers[i] ~= 0 then
|
|
local is_prime = true
|
|
|
|
local l = math.floor( i / 10 )
|
|
while l > 1 do
|
|
if numbers[l] == 0 then
|
|
is_prime = false
|
|
break
|
|
end
|
|
l = math.floor( l / 10 )
|
|
end
|
|
if is_prime then
|
|
max_prime_left = i
|
|
end
|
|
|
|
is_prime = true
|
|
local n = 10;
|
|
while math.floor( i % 10 ) ~= 0 and n < max_number do
|
|
if numbers[ math.floor( i % 10 ) ] ~= 0 then
|
|
is_prime = false
|
|
break
|
|
end
|
|
n = n * 10
|
|
end
|
|
if is_prime then
|
|
max_prime_right = i
|
|
end
|
|
end
|
|
end
|
|
|
|
print( "max_prime_left = ", max_prime_left )
|
|
print( "max_prime_right = ", max_prime_right )
|