| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 160667 | 李茂铭 | 寻找绝对素数 | Python3 | Compile Error | 0 MS | 0 KB | 2371 | 2026-09-26 09:46:39 |
import math def is_prime(num): """ 判断一个数是否为素数 优化点:只需检查到 sqrt(num),并排除偶数 """ if num < 2: return False if num == 2: return True if num % 2 == 0: return False # 只检查奇数因子,从3开始到sqrt(num) for i in range(3, int(math.sqrt(num)) + 1, 2): if num % i == 0: return False return True def reverse_number(num): """ 返回一个整数的反序数 例如: 123 -> 321, 100 -> 1 """ return int(str(num)[::-1]) def find_absolute_primes(m, n): """ 找出 m 到 n 之间(包含m和n)的所有绝对素数 """ absolute_primes = [] # 确保遍历范围有效 start = min(m, n) end = max(m, n) for num in range(start, end + 1): # 1. 首先判断原数是否为素数 if is_prime(num): # 2. 计算反序数 rev_num = reverse_number(num) # 3. 判断反序数是否也为素数 # 注意:如果原数是素数,但反序后变成合数(如19->91),则不是绝对素数 if is_prime(rev_num): absolute_primes.append(num) return absolute_primes # --- 主程序入口 --- if __name__ == "__main__": try: # 获取用户输入 m = int(input("请输入起始正整数 M: ")) n = int(input("请输入终止正整数 N: ")) if m < 1 or n < 1: print("请输入正整数。") else: # 查找绝对素数 result = find_absolute_primes(m, n) # 输出结果 if result: print(f"{min(m,n)} 到 {max(m,n)} 之间的绝对素数有:") # 每行打印5个,美观输出 for i, p in enumerate(result): print(p, end="\t") if (i + 1) % 5 == 0: print() # 换行 print() # 最后补一个换行 print(f"共找到 {len(result)} 个绝对素数。") else: print("该范围内没有绝对素数。") except ValueError: print("输入无效,请输入整数。")
File "Main.py", line 65
print(f"{min(m,n)} \u5230 {max(m,n)} \u4e4b\u95f4\u7684\u7edd\u5bf9\u7d20\u6570\u6709\uff1a")
^
SyntaxError: invalid syntax