埃拉托色尼筛法

 

def is_prime(n):if n % 2 == 0 and n != 2:return Falsefor i in range(3, int(math.sqrt(n) + 1)):if n % i == 0:return Falsereturn n != 1def eratosthenes(n):primes = []is_prime = [True] * (n + 1)for i in range(2, n+1):if is_prime[i]:primes.append(i)# 用当前素数i去筛掉所有能被它整除的数for j in range(i * 2, n+1, i):is_prime[j] = Falsereturn primesdef ertosthenes(n):primes = []is_prime = [True] * (n+1)for i in range(2, n+1):if is_prime[i]:primes.append(i)for j, p in enumerate(primes):# 防止越界if p > n // i:break# 过滤is_prime[i * p] = False# 当i % p等于0的时候说明p就是i最小的质因数if i % p == 0:breakreturn primes

再来个BING写的c++

#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=5000000;
long prime[maxn]; // 存储一个个确定为质数的数
bool is_prime[maxn+1]; // 标记范围内所有数
int p = 0;
int sieve(int n) {p = 0;for(int i=0;i<=n;i++) is_prime[i]=true; // 所有数先标记为trueis_prime[0] = is_prime[1] = false; // 把数字0,1标记为质数for(int i=2;i<=n;i++) {if(is_prime[i]) // 如果这个数没有被标记为false{prime[p++]=i; // 用prime数组存起来这个数,既存起了质数,又用p表示了质数个数for(int j=i*i;j<=n;j+=i) // 这里没有优化时的写法是for (int j=2*i; j<=n; j++)。//因为小于j (即i^2)内的合数都因为 (根号j) (即i)内有更小的j的的因数而被排除// 比如3^2 = 9,为什么不算2*3 = 6呢, 因为6<9,所以6因为3以内有更小的因数而直接被排除is_prime[j]=false;}}return p; // 返回质数个数
}
int main() {//测试int n;while(~scanf("%d",&n)) {printf("质数个数是: %d\n",sieve(n));printf("质数有:\n");for (int i = 0; i<p; i++) {printf("%d ", prime[i]);printf("\n\n");}}system("pause");
}

is_prime[0] = is_prime[1] = false;

竟然符合c++语法...震惊.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/235378.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hi-Net:用于多模态MR图像合成的混合融合网络

Hi-Net: Hybrid-Fusion Network for Multi-Modal MR Image Synthesis Hi-Net&#xff1a;用于多模态MR图像合成的混合融合网络背景贡献实验方法the modality-specific network&#xff08;模态特定网络&#xff09;multi-modal fusion networkmulti-modal synthesis network 损…

前端传参中带有特殊符号导致后端接收时乱码或转码失败的解决方案

文章目录 bug背景解决思路1&#xff1a;解决思路2解决思路3&#xff08;最终解决方案&#xff09;后记 bug背景 项目中采用富文本编辑器后传参引起的bug&#xff0c;起因如下&#xff1a; 数据库中存入的数据会变成这种未经转码的URL编码 解决思路1&#xff1a; 使用JSON方…

智能优化算法应用:基于纵横交叉算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于纵横交叉算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于纵横交叉算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.纵横交叉算法4.实验参数设定5.算法结果6.参考…

Linux 如何在文件中查找指定内容,grep的用法

Linux 如何在文件中查找指定内容 1、 如我们 查找 log_file_catalina.out 文件中&#xff0c;包含 ‘总数&#xff1a;900’ 的字符内容 2、 在日志中查看 83910_law_21CFBC7EB25B1FF60255FE7F4BE1BCCF1CE726F6_0.bdyhf 的相关内容 grep 83910_law_21CFBC7EB25B1FF60255FE7…

Python streamlit指南,构建令人惊叹的可视化Web界面!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在当今数据驱动的世界中&#xff0c;构建交互式、美观且高效的数据可视化应用变得至关重要。而Streamlit&#xff0c;作为Python生态系统中为开发者提供了轻松创建Web应用的利器。 本文将深入探讨Streamlit的方…

QT线程的使用 循环中程序的等待

QT线程的使用 循环中程序的等待 先看效果1 pro文件2 头文件3 源文件4 ui文件先看效果 1 pro文件 QT += concurrent2 头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H

pandas-profiling / ydata-profiling介绍与使用教程

文章目录 pandas-profilingydata-profilingydata-profiling实际应用iris鸢尾花数据集分析 pandas-profiling pandas_profiling 官网&#xff08;https://pypi.org/project/pandas-profiling/&#xff09;大概在23年4月前发出如下公告&#xff1a; Deprecated pandas-profilin…

WMS仓储系统引领零售物流数字化转型:高效库存与逆向处理新趋势

随着零售行业竞争的日益激烈&#xff0c;企业逐渐认识到作业效率和成本控制能力是决定竞争力的关键因素。为了更有效地管理和追踪仓库业务的物流和成本&#xff0c;WMS&#xff08;仓库管理系统&#xff09;迎来了广泛应用。大多数WMS产品源自ERP&#xff08;企业资源计划&…

SpringCloud核心组件

Eureka 注册中心&#xff0c;服务的注册与发现 Feign远程调用 Ribbon负载均衡&#xff0c;默认轮询 Hystrix 熔断 降级 Zuul微服务网关&#xff08;这个组件负责网络路由&#xff0c;可以做统一的降级、限流、认证授权、安全&#xff09; Eureka 微服务的功能主要有以下几…

ELFK集群部署(Filebeat+ELK) 本地收集nginx日志 远程收集多个日志

filebeat是一款轻量级的日志收集工具&#xff0c;可以在非JAVA环境下运行。 因此&#xff0c;filebeat常被用在非JAVAf的服务器上用于替代Logstash&#xff0c;收集日志信息。 实际上&#xff0c;Filebeat几乎可以起到与Logstash相同的作用&#xff0c; 可以将数据转发到Logst…

切水果小游戏

欢迎来到程序小院 切水果 玩法&#xff1a;点击鼠标左键划过水果&#xff0c;快去切水果&#xff0c;看你能够获划出多少水果哦^^。开始游戏https://www.ormcc.com/play/gameStart/205 html <div id"game" class"game" style"text-align: center;…

centos8 下载

下载网址 Download 直接下载地址 https://mirrors.cqu.edu.cn/CentOS/8-stream/isos/x86_64/CentOS-Stream-8-20231127.0-x86_64-dvd1.iso 这个版本安装的时候方便