Run ID:160663

提交时间:2026-09-26 09:44:31

import math def is_prime(n): """判断一个数是否为素数""" if n <= 1: return False if n <= 3: return True # 排除偶数和3的倍数,加速判断 if n % 2 == 0 or n % 3 == 0: return False # 从5开始,每次步长为6,检查 i 和 i+2 # 因为所有素数(大于3)都位于 6k-1 或 6k+1 的位置 i = 5 while i * i <= n: if n % i == 0 or n % (i + 2) == 0: return False i += 6 return True def find_primes_range(start, end): """找出 start 到 end 之间(包含两端)的所有素数""" primes = [] # 确保 start 至少从 2 开始,因为素数定义为大于1的自然数 for num in range(max(2, start), end + 1): if is_prime(num): primes.append(num) return primes # --- 使用示例 --- start_num = 1 end_num = 50 prime_list = find_primes_range(start_num, end_num) print(f"{start_num} 到 {end_num} 之间的素数有:") print(prime_list)