• 2025-01-07素数的几种常见线性筛法
    目录前言一.遍历查找二.埃氏筛法三.欧拉筛法(终极版)结语前言    前些天写了一个查找范围区间的素数个数的题目,有两组数据一直tle,所以就特此学习了一些素数算法,所以又写了一遍,一是为了让自己对代码的熟悉程度有提高,一方面也是积累自己的算法模板。一.遍历查找
  • 2025-01-04素数入门笔记
    试除法从\(2\)枚举到\(\lfloor\sqrtn\rfloor\)判断能否整除。朴素筛法从小到大枚举每个数,将范围内它的倍数全部标记为合数。时间复杂度显然就是调和级数\(O(n\logn)\)。埃氏筛观察到一个合数必定可以通过某个质数乘上某个数得到。从小到大枚举每个质数,将范围内它的
  • 2025-01-02数论基础B
    数论基础B试除法判定质数暴力做法:枚举\(2\)~\(n-1\)的所有数,判断能否将\(n\)整除,如果存在一个数能把\(n\)整数,说明\(n\)不是质数实际上只需要枚举到\(\sqrt{n}\)即可,如果\(a\)是\(n\)的约数,那么\(\frac{n}{a}\)也是\(n\)的约数,我们只需要检验\(min(a,\fr
  • 2024-12-09c语言欧拉筛法求素数 #欧拉筛法 #c语言
    筛选一个小范围内的素数大家基本都会用遍历法,如筛选1~100的素数,大家可能会写出下面代码:#include<stdio.h>#include<math.h>intmain(){intnum;for(num=2;num<=100;num++){//遍历2到100的数inti;intis_prime=1;//先假设
  • 2024-12-03质数
    质数的判定试除法:判定n是否为质数,扫描2~sqrt(n)即可,特判0和1这两个数,它们既不是质数,也不是合数。boolis_prime(intn){if(n<2)return0;for(inti=2;i<=sqrt(n);i++)if(n%i==0)return0;return1;}质数的筛选问题:给定一个整数
  • 2024-12-03AcWing 196 质数距离(素数,筛法)
    问题:给定L,R,找出[L,R]中距离最近和最远的质数对。分析:注意到L,R的范围很大,到了int极限值,问题毫无疑问是筛质数,不能用普通的筛法筛出[1,R](复杂度)。埃氏筛法本质是倍数标记合数,注意到如果x是合数,那它一定有不大于sqrt(x)的因数y,那么x就可以被y倍数标记。步骤:1.埃氏筛找出[1,sqrt(R
  • 2024-11-29素数
    可能出现“质数”、“素数”混用的情况,见谅。定义一个正整数无法被除了\(1\)和它自身之外的任何自然数整除,则称该数为质数,否则称其为合数。注意到在整个自然数集合中,质数数量不多、分布稀疏,对于一个足够大的\(N\in\mathbb{Z}\),\(\leqN\)的质数大约有\(\frac{N}{\ln
  • 2024-11-24解决整合Django与Jinja2兼容性的问题
    提问解决整合Django与Jinja2时遇到了一些兼容性问题。已经按照常规步骤在我的settings.py中配置了Jinja2作为模板引擎,同时保留了Django默认的模板设置。然而尝试同时使用Django和Jinja2时,系统报错提示我没有指定模板。如果我尝试移除Django的默认模板配置,错误信息变成了没
  • 2024-10-15素数筛法算法
    素数定义:素数是指在大于1的自然数中,除了1和它本身外,没有其他因数的数。换句话说,素数只有两个正因数:1和它本身。注意:0和1既不是质数也不是合数。inlineboolisprime(intx){for(inti=2;i<=x-1;++i){if(x%i==0)return0;return1;}}in
  • 2024-09-19信息学奥赛初赛天天练-92-CSP-S2023阅读程序2-动态数组、反转函数、埃氏筛法、欧拉筛法、唯一分解定理、约数、约数个数、约数和
    2023CSP-S阅读程序2判断题正确填√,错误填⨉;除特殊说明外,判断题1.5分,选择题3分,共计40分)01#include<iostream>02#include<cmath>03#include<vector>04#include<algorithm>05usingnamespacestd;0607longlongsolve1(intn){08vector<bo
  • 2024-09-11牛客小白月赛99 D题 又是一年毕业季
     题目链接:牛客小白月赛99_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ通过对题目分析我们可以知道,题目要求我们找到一个时间t,时间t不能被a[i]整除。也就是说,t的因子不能是a[i]。由此我们可以想到,什么数比较容易满足这个条件呢?诶!就是素数(只能被1和它本身整除的数)。
  • 2024-08-30Min_25 筛学习笔记
    \(\text{Min}\_25\)筛学习笔记事实上我又学习了一个有点春的筛法。\(\text{Min}\_25\)筛用于求解积性函数的前缀和,即形如\(g(n)=\sum_{i=1}^{n}f(i)\)形式的函数\(g\)。众所周知,朴素筛法之所以无法做到低于线性是因为枚举了区间内的每一个数,那么我们想要做到低于线性,就必然
  • 2024-08-24埃筛C++写法
    埃筛的作用是找素数(质数),以质数的倍数一定是合数为重心思路。比如说2是质数,但2的倍数(除了自己)都是合数。3是质数,但3的倍数(除了自己)都是合数。我们针对这个特性,可以用打标法实现。p[x]表示x是否为质数。voidPrime(){ memset(P,true,sizeof(P)); for(inti
  • 2024-08-10算法板子:质数——判定质数、分解质因数、筛质数
    目录一、判定质数1.代码二、分解质因数1.质因数的概念2.代码三、筛质数——获取1~n中所有质数的个数1.合数的概念2.代码一、判定质数1.代码#include<iostream>usingnamespacestd;boolis_prime(intx){//1不是质数,需要特判if(x==1)r
  • 2024-08-04筛选质数的三个方法:1.素数判断,2埃氏法,3欧拉法。
    文章目录前言一、素数是什么?二、算法使用原理1.合数:合数除了1和它本身以外,还有其他因数。与素数相对,素数只有1和它本身两个因数,而合数则至少有三个因数。2.我们理解了合数的概念后,可以知道一个合数可以由至少三个因数构成如,6=1*2*3,说明所有素数的倍数都可以是合数,那么我
  • 2024-07-182024 暑假集训杂题选做
    目录写在前面CF1981DCF1992F写在最后写在前面我是飞物。CF1981D2400妈的好诡异的题场上拿到这题我都不知道我要干啥呃呃考虑到每个合数均为若干质数的乘积,则若构造方案中有合数,可以将合数替换为质数从而减少使用的权值的种类数,于是仅需考虑使用质数构造,则此时并不需要考虑具
  • 2024-06-22基础数论
    素数素数和合数定义若\(p\in\Zeta\),且\(p\not=0,\pm1\),其约数集合中的元素只有\(1\)和\(p\)本身,那么称\(p\)为素数。若\(a\in\Zeta\),且\(a\not=0,\pm1\),\(a\)不为素数,则为合数。素数一般指正的素数。素数计数\(\pi(x)\)表示小于或等于\(x\)的素
  • 2024-05-27赛克oj 1541(线性筛、约数个数)
    赛氪OJ-专注于算法竞赛的在线评测系统(saikr.com)题目描述小明在学校学了质数和合数的知识后,便想知道对于任意的一个数N,将其拆分为一个质数与一个合数相加的结果,有几种拆法?但后来想想又觉得太简单了,于是他追加了一些条件,合数要继续拆分为两个数相乘的形式才行,那么满足以上
  • 2024-05-22python0008
    用户输入整数n和m(1<n<m<1000),应用筛法求[n,m]范围内的所有素数。defsieve(n,m):"""输入两个正整数n和m,返回[n,m]范围内的所有素数的列表"""#初始化一个长度为m-n+1的列表,用于标记数值是否为素数is_prime=[True]*(m-n+1)#如果n为1,则将1