本地题面缓存已迁移,解析内容待补充。
OJ: noi_openjudge
题目 ID: ch0113-11
难度:未知
标签:python
日期: 2026-07-30 23:01
题意
完整题面见同目录的 problem.md。
思路
代码
Python代码
python
def is_prime(number: int) -> bool:
if number < 2:
return False
for divisor in (2, 3, 5, 7, 11):
if number == divisor:
return True
if number % divisor == 0:
return False
exponent = number - 1
power_of_two = 0
while exponent % 2 == 0:
power_of_two += 1
exponent //= 2
for base in (2, 3, 5, 7, 11):
value = pow(base, exponent, number)
if value in (1, number - 1):
continue
for _ in range(power_of_two - 1):
value = value * value % number
if value == number - 1:
break
else:
return False
return True
digit_count = int(input())
if digit_count == 1:
answers = [2, 3, 5, 7]
elif digit_count % 2 == 0:
answers = [11] if digit_count == 2 else []
else:
half_length = digit_count // 2 + 1
answers = []
for prefix in range(10 ** (half_length - 1), 10**half_length):
text = str(prefix)
candidate = int(text + text[-2::-1])
if is_prime(candidate):
answers.append(candidate)
print(len(answers))
print(*answers)