2022年4月6日

摘要: 求一个数的最大公约数最常用的方法就是辗转相除法,也就是说gcd(a,b) == gcd(b,a%b); 为什么说这样是可以的呢,我们首先证明一下if(a%d == 0 && b%d == 0) then (k1*a+k2*b)%d == 0; 我们接下来继续说明一下原式为什么可行: 假设a>b,a 阅读全文

posted @ 2022-04-06 20:16 ZheyuHarry 阅读(381) 评论(0) 推荐(0) 编辑

摘要: 让我们先来看到欧拉函数的定义: 我们相当于已经知道了公式只需要按照公式进行质因式分解即可,直接来看代码吧: #include<bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; while(n -- ){ int a; c 阅读全文

posted @ 2022-04-06 20:10 ZheyuHarry 阅读(63) 评论(0) 推荐(0) 编辑

摘要: 这一部分我们将会讲到数论中的快速幂问题,是用于快速求解a^k%p 的此类问题的; 1<=a,k,p <= 1^9; 解题思路: 我们假设a^k的因式分解可以分解为x1,x2,x3....,xk,ans = (x1%p)(x2%p)....(xk%p); 因为我们如果按照朴素做法肯定要一步步求出a^k 阅读全文

posted @ 2022-04-06 19:55 ZheyuHarry 阅读(30) 评论(0) 推荐(0) 编辑