首页 > 编程语言 >数学算法

数学算法

时间:2024-10-25 15:14:05浏览次数:1  
标签:nums int 质数 合数 算法 bool 数学 MX

1.筛质数

力扣相关题目:204. 计数质数2523. 范围内最接近的两个质数

要在某个范围内计算出所有质数时,先在这个范围内做预处理,把所有的质数筛出来

埃氏筛:从前往后,把质数的倍数都去掉(因为这肯定不是质数了)

const int MX = 5e6;			//比如数据范围是0~5*10^6
vector<int>primes;			//保存质数的数组

int init = []() {
	bool nums[MX + 1]{};		//bool数组标记质数和非质数,false为质数,true为合数
	for (int i = 2; i <= MX; ++i) {		//刚开始从2开始,肯定是质数
		if (!nums[i])
			primes.push_back(i);
		for (int j = i; j <= MX / i; ++j)	//质数的倍数都是合数,标记为true
			nums[i * j] = true;
	}

	primes.push_back(MX + 1);		//依题目而定是否要在最后插入这两个数,可以在相关题目中省去判断下标是否越界
	primes.push_back(MX + 1);

	return 0;
}();

欧拉筛:每一个合数只用它最小的质因子筛掉

const int MX = 1e6;
vector<int>primes;

int init = []() {
	bool nums[MX + 1]{};
	for (int i = 2; i <= MX; ++i) {
		if (!nums[i])
			primes.push_back(i);
		for (int n : primes) {
			if (n > MX / i)
				break;
			nums[n * i] = true;
			if (!(i % n))		//每个合数只会被筛一次,只被它的最小的质因子筛掉
				break;
		}
	}

	primes.push_back(MX + 1);
	primes.push_back(MX + 1);
	
	return 0;
}();

标签:nums,int,质数,合数,算法,bool,数学,MX
From: https://www.cnblogs.com/Amroning/p/18502576

相关文章

  • 【有啥问啥】视频插帧算法技术原理详解
    视频插帧算法技术原理详解引言视频插帧(VideoInterpolation)技术,作为计算机视觉领域的一项重要应用,旨在通过算法手段在已有的视频帧之间插入额外的帧,从而提升视频的帧率,使其看起来更加流畅。这一技术不仅广泛应用于电影特效、视频游戏、运动捕捉等领域,还随着计算机视觉和......
  • 越界检测视频分析网关区域入侵识别人员入侵算法的技术原理和视频监控应用
    在传统的监控模式下,依赖人工持续监视视频画面存在明显的局限性,包括疲劳、注意力分散以及无法覆盖所有区域等问题,这使得实现24小时、全方位监控变得困难。而人工智能技术的应用,通过在关键位置部署摄像头,能够捕获连续的视频流。结合深度学习模型,这些视频流可以被实时分析,从而提高了......
  • 【优选算法】——滑动窗口(下篇)
    目录1、水果成篮2、找到字符串中所有字母异位词3、串联所有单词的子串4、最小覆盖子串1、水果成篮你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。你想要尽可能多地收集水果......
  • OCR技术的新突破:传统算法与多模态大模型的较量
    大家好!今天咱们来聊聊OCR技术的最新进展。OCR,就是把图片里的文字转换成电子文本的技术。这可是个实用的东西,尤其是当你需要把纸质文档变成可编辑的文本时。先说说传统的OCR算法。它们通常分两步走:先识别文字和位置,然后对文字进行后处理。百度的PaddleOCR在这方面做得不错,尤其......
  • 【小学奥数】小学数学几何模型详解
    小学数学几何模型综合解析一、蝴蝶模型(一)定义在梯形中,通过两条对角线将梯形分成四个部分,这四个部分的面积之间存在特定的比例关系,形似蝴蝶。(二)证明思路由于梯形上下底平行,所以△A......
  • kd-tree和ball-tree在算法实现原理上有什么区别
    kd-tree和ball-tree在算法实现原理上的区别主要体现在:1.结构不同;2.划分方式不同;3.查询效率不同;4.应用场景不同;5.空间利用效率不同。总的来说,kd-tree在处理低维数据时效率较高,而ball-tree更适合处理高维数据。kd-tree是一种二叉树结构,而ball-tree则是一种层次化的数据结构。1.......
  • 最短路算法笔记
    最短路算法最短路算法可大致分为三类:无负权边的单源最短路,有负权边的单源最短路和多源汇最短路dijkstra算法dijkstra算法是求无负权边的单源最短路的常用算法,基于贪心的思想其过程大致为:找到距离已经确定最短路的连通块的最近的点把他加入已经确定最短路的连通块用这个......
  • 用于数据挖掘的分类算法有哪些
    数据挖掘的分类算法是一类用于识别和预测类别的算法,主要包括:1.决策树,如C4.5和CART,适用于可解释性强的场景;2.SVM(支持向量机),适合线性和非线性分类问题;3.随机森林,集成多个决策树以提高准确性;4.K-近邻算法,基于相似性进行分类。其中,随机森林以其出色的准确性和鲁棒性在许多实际应......
  • 代码随想录算法训练营第24天(补第13天)|226.翻转二叉树, 101. 对称二叉树,104.二叉树的最
    226.翻转二叉树文章链接:https://programmercarl.com/0226.翻转二叉树.html#算法公开课题目链接:https://leetcode.cn/problems/invert-binary-tree/description/迭代法:这里使用了前序遍历来交换左右孩子节点classSolution{public:TreeNode*invertTree(TreeNode*r......
  • 双非院校,0项目经验,三个月入职大厂NLP算法岗,月薪30k+
    金九银十马上就要过去,NLP算法求职几家欢喜几家愁。有人offer拿到手软,有人从灰飞烟灭到人间地狱。我们用了2个月的时间,调研了200多位NLP工程师和100个在2024年热招的岗位,对过去一年NLP领域人才求职和热招岗位情况深度分析了一下。发现了一些情况,以飨大家。01NLP算法求职更......