acwing算法基础之数学知识--求小于等于n的所有质数

目录

  • [1 基础知识](#1 基础知识)
  • [2 模板](#2 模板)
  • [3 工程化](#3 工程化)

1 基础知识

核心思想:把2~n中的非质数打上标记(也即,筛掉),剩余的就是质数。

一般做法:

cpp 复制代码
int primes[N]; //存储所有的质数
int st[N]; //存储是否被排除
int cnt;
int n;

void f() {
	for (int i = 2; i <= n; ++i) {
		if (!st[i]) {
			primes[cnt++] = i;
			for (int j = i + i; j <= n; j += i) {
				st[j] = true;
			}
		}
	}
	//输出小于等于n的所有质数
	for (int i = 0; i < cnt; ++i) cout << primes[i] << " ";
	cout << endl;
	return;
}

线性筛选质数的方法,它的核心思想:非质数,只会被它的最小质因子筛掉。

cpp 复制代码
int n, cnt;
int primes[N];
bool st[N];

void f() {
	for (int i = 2; i <= n; ++i) {
		if (!st[i]) primes[cnt++] = i;
		for (int j = 0; primes[j] <= n / i; ++j) {
			st[primes[j] * i] = true;
			if (i % primes[j] == 0) break; 
		}
	}
	//输出所有质数
	for (int i = 0; i < cnt; ++i) cout << primes[i] << " ";
	cout << endl;
	return;
}

2 模板

暂无。。。

3 工程化

暂无。。。

相关推荐
少许极端13 小时前
算法奇妙屋(四十五)-CCPC备战之旅-1
java·开发语言·算法
无小道13 小时前
算法——找规律
算法·规律
地平线开发者13 小时前
目标检测的 Anchor-Free 和 NMS 到底是什么?
算法·自动驾驶
北顾笙98014 小时前
day24-数据结构力扣
数据结构·算法·leetcode
智者知已应修善业14 小时前
【51单片机独立按键控制往复流水灯启停】2023-6-13
c++·经验分享·笔记·算法·51单片机
pen-ai14 小时前
MAD(Median Absolute Deviation)详解:最稳健的尺度估计方法
人工智能·算法
無限進步D15 小时前
Java 基础算法训练
java·开发语言·算法·入门
门左有棵树15 小时前
蓝桥杯C++组算法知识点整理(考前急救)
c++·算法·蓝桥杯
历程里程碑15 小时前
二叉树---二叉树的最大深度
大数据·数据结构·算法·elasticsearch·搜索引擎·全文检索·深度优先
自我意识的多元宇宙15 小时前
树与二叉树--树的基本概念
数据结构·算法