O(n)求素数,求欧拉函数,求莫比乌斯函数,求对mod的逆元,各种求
筛素数
void shai()
{
no[1]=true;no[0]=true;
for(int i=2;i<=r;i++)
{
if(!no[i])
p[++p[0]]=i;
int j=1,t=i*p[1];
while(j<=p[0] && t<=r)
{
no[t]=true;
if(i%p[j]==0) //每一个数字都有最小质因子。这里往后的数都会被筛过的,break
break;
t=i*p[++j];
}
}
}
O(n)筛欧拉函数
void find()
{
phi[1]=1;
for(int i=2;i<=maxn-1;i++)
{
if(!is_prime[i]){prime[++cnt]=i,phi[i]=i-1;}
int j=1,t=2*i;
while(j<=cnt&&t<=maxn-1)
{
is_prime[t]=1;
if(i%prime[j]==0)
{ //欧拉函数公式是phi[i]=i*(1-1/p1)*(1-1/p2)..
phi[t]=phi[i]*prime[j];//质因子同样,仅仅有i不同,且t=prime[j]*i,故作此
break;
}
else phi[t]=phi[i]*(prime[j]-1);//质因子不一样,由于欧拉函数是积性函数,就是
j++;t=prime[j]*i; //=phi[i]*phi[j]
}
}
}
sqrt(n)求单个欧拉函数
long long phi(long long x)
{
long long t=x,l=sqrt(x);
for(long long i=2;i<=l;i++)
if(x%i==0)
{
t=t/i*(i-1); //欧拉函数公式,一定是先除再加
while(x%i==0)
x/=i;
}
if(x>1) //对x大于sqrt(x)的质因子最多有1个
t=t/x*(x-1);
return t;
}
O(n)筛莫比乌斯函数
void shai()
{
no[1]=1;mu[1]=1;
for(int i=2;i<=maxl;i++)
{
if(!no[i])
p[++p[0]]=i,mu[i]=-1;//仅仅有1个质因数,所以为-1
int j=1,t=p[1]*i;
while(j<=p[0] && t<=maxl)
{
no[t]=1;
if(i%p[j]==0)
{
mu[t]=0;//某质因数的指数不为1。依据定义=0
break;
}
mu[t]=-mu[i];//依据定义,当x=p1*p2*..*pk,mu[x]=(-1)^k。
t=p[++j]*i; //这里多一个质因数,自然就多乘一个-1
}
}
}
O(n)求1到n对mod的逆元
转自http://blog.csdn.net/whyorwhnt/article/details/19169035
inv[i] = ( MOD - MOD / i ) * inv[MOD%i] % MOD
证明:
设t = MOD / i , k = MOD % i
则有 t * i + k == 0 % MOD
有 -t * i == k % MOD
两边同一时候除以ik得到
-t * inv[k] == inv[i] % MOD
即
inv[i] == -MOD / i * inv[MOD%i]
即
inv[i] == ( MOD - MOD / i) * inv[MOD%i]
证毕
适用于MOD是质数的情况。可以O(n)时间求出1~n对模MOD的逆元
inv[1]=1;
for(long long i=2;i<maxl && i<mod;i++)
inv[i]=(mod-mod/i)*inv[mod%i]%mod;
O(n)求素数,求欧拉函数,求莫比乌斯函数,求对mod的逆元,各种求的更多相关文章
- 初等数论-Base-1(筛法求素数,欧拉函数,欧几里得算法)
前言 初等数论在OI中应用的基础部分,同机房的AuSquare和zhou2003君早就写完了,一直划水偷懒的Hk-pls表示很方,这才开始了这篇博客. \(P.S.\)可能会分部分发表. Base-1 ...
- 2019-ACM-ICPC-南昌区网络赛-H. The Nth Item-特征根法求通项公式+二次剩余+欧拉降幂
2019-ACM-ICPC-南昌区网络赛-H. The Nth Item-特征根法求通项公式+二次剩余+欧拉降幂 [Problem Description] 已知\(f(n)=3\cdot f(n ...
- BZOJ 2818 GCD 素数筛+欧拉函数+前缀和
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2818 题意:给定整数N,求1<=x,y<=n且Gcd(x,y)为素数的数对( ...
- 转载:Candy? 在线性时间内求出素数与欧拉函数
转载自:http://www.cnblogs.com/candy99/p/6200660.html 2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MB ...
- 【模板】埃拉托色尼筛法 && 欧拉筛法 && 积性函数
埃拉托色尼筛法 朴素算法 1 vis[1]=1; 2 for (int i=2;i<=n;i++) 3 if (!vis[i]) 4 { 5 pri[++tot]=i; 6 for (int j ...
- 由 [SDOI2012]Longge的问题 探讨欧拉函数和莫比乌斯函数的一些性质和关联
本题题解 题目传送门:https://www.luogu.org/problem/P2303 给定一个整数\(n\),求 \[ \sum_{i=1}^n \gcd(n,i) \] 蒟蒻随便yy了一下搞 ...
- 素数筛&&欧拉筛
折腾了一晚上很水的数论,整个人都萌萌哒 主要看了欧拉筛和素数筛的O(n)的算法 这个比那个一长串英文名的算法的优势在于没有多次计算一个数,也就是说一个数只筛了一次,主要是在%==0之后跳出实现的,具体 ...
- 【51nod-1239&1244】欧拉函数之和&莫比乌斯函数之和 杜教筛
题目链接: 1239:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1239 1244:http://www.51nod. ...
- BZOJ4804 欧拉心算(莫比乌斯反演+欧拉函数+线性筛)
一通套路后得Σφ(d)μ(D/d)⌊n/D⌋2.显然整除分块,问题在于怎么快速计算φ和μ的狄利克雷卷积.积性函数的卷积还是积性函数,那么线性筛即可.因为μ(pc)=0 (c>=2),所以f(pc ...
- UVA12493 - Stars(求1-N与N互质的个数)欧拉函数
Sample Input 3 4 5 18 36 360 2147483647 Sample Output 1 1 2 3 6 48 1073741823 题目链接:https://uva.onlin ...
随机推荐
- Educational Codeforces Round 32
http://codeforces.com/contest/888 A Local Extrema[水] [题意]:计算极值点个数 [分析]:除了第一个最后一个外,遇到极值点ans++,包括极大和极小 ...
- [JOISC2016]サンドイッチ
题目大意: 一个$n\times m(n,m\leq400)$的网格图中,每个格子上放了两个三明治,摆放的方式分为'N'和'Z'两种.一个三明治可以被拿走当且仅当与该三明治的两条直角边相邻的三明治均被 ...
- Map集合-根据宠物昵称查找宠物
package collection; /** * 宠物类 * @author * */ public class Pet { private String name; private String ...
- UVA 11134 Fabled Rooks 贪心
题目链接:UVA - 11134 题意描述:在一个n*n(1<=n<=5000)的棋盘上放置n个车,每个车都只能在给定的一个矩形里放置,使其n个车两两不在同一行和同一列,判断并给出解决方案 ...
- Node应用的Systemd启动(转)
作者: 阮一峰 日期: 2016年3月12日 前面的文章介绍了 Systemd 的操作命令和基本用法,今天给出一个实例,如何使用 Systemd 启动一个 Node 应用. 本文是独立的,不需要前面的 ...
- andriod绘制图形
使用view画图,有两个重要的组件需要介绍: (1)Paint 可以理解为画刷或者画笔,去主要用来设置绘图使用的颜色.填充方式.透明度.字体以及字体样式等. (2)Canvas 画布,在view上显示 ...
- 【微信】微信小程序 新建页面目录后,怎么自动生成目中的的四个基本文件呢? 新建目录报错如下VM458:2 未找到 app.json 中的定义的 pages "pages/module/module" 对应的 WXML 文件
如下图,在使用微信开发者工具过程中,新创建了页面目录,想要页面文件夹中自动生成四个基本文件 但是新创建了一个页面文件夹,里面的四个基本文件并没有展示出来 然后在app.json添加这个路径,ctrl+ ...
- IIS Express HTTP 错误 500.22
错误描述: HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置. 最可能的原因: 此应用程序在 system.we ...
- 129 - Krypton Factor
/*UVa129 - Krypton Factor --回溯问题.看例子可知道确定该字符串是按照从左到右依次考虑每个位置,当前位置填不上所有的字符时,需要回溯. -- */ #define _CRT_ ...
- mac下npm/node的安装和卸载、升级;node、npm升级后最后删掉node_modules重新安装
mac还是使用brew install简单一些:最好使用一种安装方式,不要多种方式互用: 更新npm到最新版本npm install -g npm更新npm到指定版本 npm -g install n ...