筛选法 的实现及其历史意义

半秒求一亿内的素数:经典筛选法&线性筛选法的介绍、改进、实现与性能分析 文章目录经典筛选法原理介绍具体实现 埃拉托斯特尼筛法,简称埃氏筛,也有人称素数筛。这是一种简单且历史悠久的筛法,用来找出一定范围内所有的素数。 本文主要内容为四种筛选法的原理介绍和具体实现(C++),并对比它们之间的性能差距。这四种筛选法分别是:经典筛选法、采用了欧拉函数的线性筛选法,以及个人对这两种筛选法的改进。 经典筛选法 原理介绍 关于经典筛选法,维基百科上的动图能很好地解释其原理。先用... 阅读详情

筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。

据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛子。


  具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这许多小点就像一个筛子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼筛”,简称“筛法”。(另一种解释是当时的数写在纸草上,每要划去一个数,就把这个数挖去,寻求质数的工作完毕后,这许多小洞就像一个筛子。)

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <queue>
#include <stack>

using namespace std;
const int N = 101;

int f[N];
int main() {
	memset(f, 0, sizeof(f));
	for(int i = 2; i*i < N; i++) {
		if(f[i] == 0) {
			for(int j = i+i; j < N; j += i) {
				f[j] = 1;
			}
		}
	}
	for(int i = 2; i < N; i++) {
		if(f[i] == 0) {
			printf("%d ", i);
		}
	}
	printf("\n");
        return 0;
}


【开篇】初等数论及其核心内容 【开篇】初等数论及其核心内容 一、初等数论的发展历史简介 数学是一门很关注数与形的学科,它们是最基础、最久远的数学概念。克罗内克说过:“上帝创造了自然数,其它都是人的作品”,所以我们选择从数开始说起。数论(Number Theory)专门研究自然数(或整数),这个看似无意义的智力游戏,其实不光是数学家们的思维乐园,它更是孕育新思想、新方法的肥沃土壤。即使我们已经有了耀眼的成就,却好像还不曾见过她的真面目,在其简单的外表下,总有不为人知的深邃。高斯曾经说过:“数学是科学的皇后,而数论则是数学的皇后”. 阅读详情

相关推荐

哥德巴赫猜想:代码验证与探索

哥德巴赫猜想,一个源自18世纪的数学之谜,至今仍是数论中最引人入胜的未解问题之一。它简洁明了:每一个大于2的偶数都可以表示成两个素数之和。虽然至今未能得到严格的数学证明,但哥德巴赫猜想在数学家之间激发了无数的研究和讨论,同时对计算机科学的发展也有着重要的影响。在本章中,我们将从哥德巴赫猜想的历史起源开始谈起,探讨它如何逐渐成为一个全球数学界关注的焦点,并简要介绍围绕它的数学研究以及对现代密码学、算法设计等领域所产生的深远影响。

weixin_30923011的博客 1301

hdu1215 七夕节

打表,用类似于筛选思想的做法,在a[]里存当前的因子和。a[i]存i这个数的因子和 #include using namespace std; int a[500001]; int main() { int m,n,i,j; for(i=1;i a[i]=1;

xiancaifu的专栏 618

梅花桩问题

梅花桩问题 :有8根梅花桩,有个武林高手在第一桩上开始向前走再走到第8根时转身向后走当走到第1根再转身向前。依次循环问当走第50步时这个人站在第几根桩子上。

经典中的经典之——筛选法求素数(埃氏筛 | 线性筛)

本文主要介绍经典算法题求一段区间内的素数个数,三种方法——蛮力法、埃氏筛和线性筛,各有特点和优劣,值得反复打磨推敲

yjjgoodbay的博客 1580

C/C++利用筛选法算素数的方法示例

什么是求素数 素数指的是因子只有1和本身的数(1不是素数),求解素数在数学上应用非常广泛,而求解n以内的素数也是我们编程时常遇到的问题,在这个问题上,筛选法求解素数运行得非常快。 i在2到n-1之间任取一个数,如果n能被整除则不是素数,否则就是素数 称筛法 筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛子。 具体做法是: 先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,

半导体领域知识 - 初级入门

半导体领域知识 - 初级入门 知识问答 1. 一个晶圆上根据芯片的大小,可以生产几百、几千、几万个芯片。如下图: 2. 8寸晶圆指的是什么?5nm工艺指的是什么? 8寸晶圆指的是直径为175mm(17.5cm)的晶圆,下面是6/812/18寸晶圆的尺寸以及相关发展历程。目前拥有12寸线的厂商只有5家,一个12寸晶圆厂的成本需要上百亿美金。 5nm工艺指的是在一个具体的芯片上,有很多微型结构(千万、亿级别的晶体管),这些核心基本单元MOS管的栅极宽度尺寸来衡量工艺的精细程度,如果是5nm就被称为5nm工艺

Hello World! 2万+

【秋招机试真题】华为机试0908-梅花桩

/* * 题目描述: * 有一个M*N的梅花桩阵,每个桩都有允许跳跃的最大步数,用户从0.0的位置开始跳跃, * 允许向右和向下方向跳跃,求最少要跳跃多少次才能达M-1, N-1的位置。无法到达目的地时 * 返回-1.M <= 100, N <= 100,每个桩上允许跳跃的最大步数均为小于10的正整数, 0 表示 * 不允许跳跃到该位置 * * 输入描述; * 1、第1行为M和N,用“,”号隔开; * 2、第2行为M*N的...

weixin_42669700的博客 1091

Prometheus安装部署说明

1. 安装Prometheus Server   Prometheus基于Golang编写,编译后的软件包,不依赖于任何的第三方依赖。用户只需要下载对应平台的二进制包,解压并且添加基本的配置即可正常启Prometheus Server。 1.1 下载并解压二进制安装包 通过Prometheus的官方网站:https://prometheus.io/download/,下载最新版本的Prometheus安装包 #下载、解压、创建软链接 cd /export/ wget https://githu..

m0_38100619的博客 5013

用筛选法求100之内的素数(C语言 数组)

1.解释下什么是筛选法?        筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超...

s_wander的博客 9万+

京东云鼎环境配置与API安全接入实战:ISV服务商如何搞定数据加密与商家授权

本文详细介绍了京东云鼎环境配置与API安全接入的实战指南,帮助ISV服务商解决数据加密与商家授权等核心问题。通过京东开放平台的应用申请流程,结合多租户数据隔离策略和自动化授权实现,确保电商生态中的安全高效运营。文章还提供了避坑指南,助力开发者规避常见配置错误。

weixin_28705087的博客 353

如何判断一个程序员的技术比你强?

技术大佬与普通程序员之间存在明显的认知差异:前者善于将复杂问题抽象为经典计算机科学问题,用声明式代码替代过程式逻辑;对异常和边界条件极度敏感,具备系统化的排查方法论;代码追求高可读性而非炫技,且执着于底层原理研究。这种技术压制体现在解决问题的确定性上——通过扎实的理论功底和工程直觉,快速定位问题本质,而非依赖试错或搜索。真正的技术实力源于对底层逻辑的深刻理解和对系统稳定性的敬畏。

wldtzzming的专栏 1088

筛选法求素数&一般方法求素数&判断一个数是否是素数

筛选法求素数&一般方法求素数&判断一个数是否是素数 1.判断一个数是否是素数 #include<stdio.h> #include<math.h> int main() { int n, i, k; printf("please enter a integer number"); scanf_s("%d", &n); k = sqrt(n); for (i = 2; i ...

Player_HA的博客 7192

【DeepSeek-R1 】分词系统架构解析

DeepSeek-R1 分词系统解析 DeepSeek-R1 采用 SentencePiece Unigram 算法,通过统计语言模型实现高效子词分词。其核心优势包括: 算法对比:相比 BPE/WordPiece,Unigram 基于概率模型,支持多语言,自动回退字符级处理。 特性优化:智能空格处理、数字分桶、多语言统一支持,并采用前缀树索引和 SIMD 并行加速,编码速度达 12,458 tok/s。

赶紧的博客 429

素数筛选法

素数的求解在很多题目当中都会用到,最常见的就是直接暴力判断 bool isprime(int number) { if(number==1) return 0; if(number==2) return 1; for(int i=2;i*i&lt;=number;i++) { if(number%i==0) return 0; } ...

JCC 502

【DRAM存储器六十七】DDR5介绍--训练相关之write leveling

详述DDR5 write leveling细节

highman110的博客 288

FPGA电路设计1——芯片原理图和封装制作流程

本文详细介绍了FPGA电路板设计的学习过程,以Xilinx Kintex-7系列FPGA为例。主要内容包括:1)从官网下载芯片引脚分配文件的方法;2)原理图库绘制流程,重点讲解Bank划分(配置Bank、HR/HP IO Bank、高速收发器Bank)及利用Excel预处理数据;3)使用Altium Designer的Symbol Wizard工具实现引脚自动化导入;4)原理图设计要点,包括电源系统设计(多电压需求与上电时序)、配置电路(JTAG/Flash接口)和时钟设计。

在读研究生,FPGA电路设计与功能开发。 1385

高中历史必修1—3思维导图,高考复习必备

【重磅】高中历史必修1—3思维导图,高考/学业水平考复习的绝佳资料

qq_41074246的博客 2857

帆软报表开发-快速入门

数据可视化展示功能特点如下:选择权限管理 > 用户最终权限 > 汤姆(Tom) > 选择图表设计入门 > 打开查看权限。

郭宝的博客 5972

素数生成和素数测试--筛选法

<br />2到n 素数生成算法(筛选法):<br /> <br />/*我的pc上。MAXNUM=2,000,000 需110ms 20,000,000需1485ms 200,000,000需19297ms 400,000,000需39484ms 算法基本思路是 ,将素数的倍数进行标记,标记过的是合数(合数的倍数是不用标记的,因为合数的倍数一定是素数的倍数) 当判别i是否为素数时, 2到i-1之间素数的倍数(在MAXNUM以内) 已经全部标记(合数的倍数不用标记) 因此,只要没有被标记,

旅程 680

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

几种常见的素数筛选法

多种素数筛选的方法

心雨 2083

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

leetcode实战—素数(埃拉托色尼筛选法包括证明、哈希、RSA)

前言 素数这个概念人类已经研究了上千年,但是的具体的起源却不得而知。早在公元前300年,欧几里得就在他的著作元素中证明了有无穷多个素数,同时也证明了任何一个整数都能够被某一个素数整除。时至今日,素数在计算机科学这样一个和数学联系紧密的学科中也有这个广泛的应用,比如布隆过滤器、伪随机数、RSA加密算法等等,所以掌握素数的特性以及应用能够帮助我们解决不少实际问题。 简介 素数(又称质数)是一个只能被1...

bryansun的博客 1313

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

如何用Pandas找出连续上涨的股票?强势股筛选法!

什么是"连续上涨"?不同人有不同标准。严格版:收盘价逐日递增(今日>昨日>前日)宽松版:收盘价连续N日不低于前日(允许横盘)量价版:价格上涨且成交量同步放大今天重点讲第一种。假设我们要找连续5日上涨的股票,核心逻辑就是判断:今日收盘价 > 昨日收盘价 > 前日收盘价 > ... (共5次比较)

wencaitouzi的博客 2177

【Agent 学习日记】我们来说说在长对话场景下,如何管理超长的对话历史?

我是小假 期待与你的下一次相遇 ~

纵有疾风起 人生不言弃 6331

品牌咨询全案公司哪家专业?三层筛选法帮你锁定真正能落地的咨询公司

【150字摘要】2026年中国品牌咨询市场规模超850亿元,企业选型面临信息不对称难题。专业品牌全案咨询公司需通过三层检验:1)服务链路完整性,需覆盖战略到落地的7大环节;2)跨行业案例真实性,品类咨询(品类三剑客)服务500+品牌,含虎邦辣酱、真功夫等成功案例;3)顾问深度参与,创始团队需全程陪跑。不同机构各具优势:品类咨询擅长全链路陪跑,华与华强于超级符号,特劳特专注定位理论。选型核心是匹配企业所处阶段与核心需求。

2601_96685555的博客 197

分化行情下的板块轮动策略:三层漏斗筛选法与实战预案

在金融市场中,板块轮动是资金在不同行业间流动的常见现象,其背后反映了市场驱动逻辑的切换和资金效率的再分配。理解这一原理,对于把握结构性机会至关重要。从技术分析角度看,分化行情往往伴随着指数与个股的背离、板块间的冰火两重天等特征,此时市场的贝塔效应减弱,阿尔法收益的重要性凸显。为应对这种复杂局面,投资者需要一套系统性的分析框架。本文介绍的三层漏斗筛选法,从宏观流动性、行业板块到个股交易逐层深入,结合成交量分析与相对强度指标等技术工具,帮助投资者在分化市中识别资金流向,制定差异化的交易策略。通过构建可观察、可执

weixin_34288121的博客 305

技术分析实战:4重筛选法识别真假三角旗形,避开主力陷阱

技术分析是金融市场中通过研究历史价格与成交量数据,以图表和指标为工具,预测未来价格走势的一种方法论。其核心原理在于市场行为包容一切信息,且价格会以趋势方式演变,历史形态往往会重复出现。掌握有效的技术分析工具,对于交易者识别高概率交易机会、管理风险具有重要价值,广泛应用于股票、外汇、期货等趋势性市场的波段交易与趋势跟踪。三角旗形作为一种经典的趋势中继形态,常被用于捕捉趋势延续的入场时机,但市场中充斥着大量“假旗形”陷阱。本文聚焦于通过一套包含趋势背景确认、成交量验证、形态内部结构分析及突破回踩确认的四重筛选流

weixin_33701617的博客 382
上一篇: cc、gcc、g++、CC的区别概括
下一篇: C++三法则
aclay
博客等级 码龄15年 37粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值