python0008
用户输入整数n和m(1<n<m<1000),应用筛法求[n,m]范围内的所有素数。
def sieve(n, m): """ 输入两个正整数n和m,返回[n,m]范围内的所有素数的列表 """ # 初始化一个长度为m-n+1的列表,用于标记数值是否为素数 is_prime = [True] * (m - n + 1) # 如果n为1,则将1标记为合数 if n == 1: is_prime[0] = False # 从2开始,将所有能被2整除的数标记为合数 for i in range(2, int(m ** 0.5) + 1): for j in range(max(i ** 2, (n + i - 1) // i * i), m + 1, i): if j >= n and is_prime[j - n]: is_prime[j - n] = False # 将所有未被标记为合数的数加入素数列表 primes = [i + n for i in range(m - n + 1) if is_prime[i]] return primes # 输入n和m n, m = map(int, input("请输入n和m(1 < n < m < 1000):").split()) if not 1 < n < m < 1000: print("输入有误,请重新输入") n, m = map(int, input("请输入n和m(1 < n < m < 1000):").split()) else: print("该范围内的所有素数为:", end='') print(sieve(n, m))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2023-05-22 c语言趣味编程