![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础数论
MR_xiao11
这个作者很懒,什么都没留下…
展开
-
快速幂的几种方法
1.朴素算法o(n)long long qpow3(long long a,long long b){ long long s=1; for(int i=1;i<=b;i++) s=s*a%mod; return s;} 2.1递归快速幂o(logn)long long qpow(long long a,long long b){ if(b==0)return 1; else if(b%2==0){ t=qpow(a,b/2); //不能直接retur.原创 2022-04-26 19:48:22 · 213 阅读 · 0 评论 -
欧拉函数试除法与筛法求解
欧拉函数的定义1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N)。若在算数基本定理中,N=pa11pa22…pamm,则:ϕ(N) = N×(p1−1)/p1×(p2−1)/p2×…×(pm−1)/pm与n互质的数的和为:n*ϕ(n)/2证明如下:则根据该公式可得求一个数的欧拉函数的代码为:试除法求解即在质因数分解的过程中将欧拉函数求出,复杂度为n\sqrt{n}n#include <bits/stdc++.h>using namespace std;int原创 2022-04-23 21:50:23 · 392 阅读 · 0 评论 -
互质与欧拉函数
对于正整数,gcd(a,b)=1,则称a,b互质。若gcd(a,b,c)=1,则称a,b,c互质,gcd(a,b)=gcd(a,c)=gcd(b,c)=1,则称a,b,c两两互质。欧拉函数:1-N中与N互质的数的个数被称为欧拉函数,即为φ(N).若N=p1c1p2c2p3c3…pmcm则:φ(N)=n (p1-1)/(p1) *(p2-1)/(p2)*……(pm-1)/pm*代码如下在分解质因数的同时可将欧拉函数求出int oula(int a){ ans=a; for(原创 2022-04-18 11:21:13 · 1157 阅读 · 0 评论 -
质数筛法,欧拉筛与埃氏筛的比较
埃氏筛为常见的质数筛法,其原理为利用已知的质数作为因子将其他合数标记,则剩下的未标记的均为质数其代码如下:此算法的复杂度为O(NloglogN)#include <bits/stdc++.h>using namespace std;const int N=1000;bool b[N];int main(){ for(int i=2;i<=sqrt(N);i++){ //i作为N的一个因子最大可达sqrt(N) if(!b[i]){ for(int j=i;j原创 2022-04-15 21:39:13 · 299 阅读 · 0 评论