![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
lxsshgdl
这个作者很懒,什么都没留下…
展开
-
欧拉函数
欧拉函数定义对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目(因此φ(1)=1)性质最近比较忙,待补充公式ϕ(n)=n∏i=1n(1−1pi)\phi(n)=n\prod_{i=1}^n(1-\frac{1}{p_i})ϕ(n)=n∏i=1n(1−pi1)埃氏筛求解欧拉函数void euler(int n){ for (int i = 1; i <= n; i++) phi[i] = i; for (int i = 2; i <= n; i++) {原创 2021-04-07 11:36:27 · 888 阅读 · 0 评论 -
HDU 6189 and Happy Equation
题目大意:给定nnn和aaa,令m=2nm=2^nm=2n,求b∈[1,m]b\in[1,m]b∈[1,m]且满足ab≡ba(moda^b≡b^a(modab≡ba(mod m)m)m)的bbb个数打表可以得出当aaa为奇数时,sum=1当aaa为偶数时,aba^bab为偶数,又因为mmm为偶数,所以ab%ma^b\%mab%m也是偶数,ab%m=ba%ma^b\%m=b^a\%mab%m=ba%m,同理bbb为偶数令a=2∗xa=2*xa=2∗x,ab%m=2b∗xb%ma^b\%m=2^b*x^b原创 2021-02-28 20:28:04 · 137 阅读 · 1 评论 -
欧几里德及其扩展
#include<bits/stdc++.h>#define IOS ios::sync_with_stdio(false);cin.tie(0);using namespace std;typedef long long ll;//朴素欧几里德//求a,b的最大公约数int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b);}//扩展欧几里德//ax+by=m, m需是gcd(a,b)的倍数才有解//当ax+原创 2021-02-23 22:26:12 · 163 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 J.sum
题目:将nnn分解为a∗ba*ba∗b的形式,且aaa和bbb均为无平方因子,f(n)f(n)f(n)可分解的总方式。例如:6=1∗6=6∗1=2∗3=3∗26=1*6=6*1=2*3=3*26=1∗6=6∗1=2∗3=3∗2,因此f(6)=4f(6)=4f(6)=4。求∑i=1nf(i)\sum_{i=1}^nf(i)∑i=1nf(i)分析:唯一分解定理、欧拉筛令n=i∗p[j]n=i*p[j]n=i∗p[j]如果 iii%(p[j])2=0(p[j])^2=0(p[j])2=0,则i=k∗(p原创 2021-02-19 13:53:41 · 1098 阅读 · 3 评论 -
质数
Eratosthenes原理:质数的倍数都是合数欧拉筛原理:合数只会被它的最小质因子筛掉#include<bits/stdc++.h>#define IOS ios::sync_with_stdio(false);cin.tie(0);using namespace std;const int MAXN = 105;typedef long long ll;bool vis[MAXN];//筛完之后 vis[x]=1 -> x不是素数,vis[x]=0 ->原创 2021-02-18 21:28:24 · 108 阅读 · 0 评论 -
取模
#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false);cin.tie(0);using namespace std;typedef long long ll;/*mod性质(a+b)%m=(a%m+b%m)%m(a-b)%m=(a%m-b%m)%m(a*b)%m=(a%m*b%m)%m*/ll quickpow(ll a, ll b, ll mod) {//a^b%mod ll ans = 1;原创 2021-02-17 18:35:56 · 106 阅读 · 0 评论