数论
戈谣
不曾阅尽千帆,谈何归来不变
展开
-
快速幂取模算法模板-x^y%mode=?
思路非常简洁的一个算法,这里只给出算法模板,建议读者阅读前详细了解快速幂算法。//写在前面//很简单的一个算法 #include <iostream>#define LL long longusing namespace std;LL Fast_power(LL x,LL y,LL mode){ LL sum=1; while(y) { if(y&1...原创 2018-12-12 19:27:24 · 498 阅读 · 0 评论 -
扩展欧几里得算法求逆元
//写在前面//当有ax=1(mod n)---1 时,x称做a的乘法逆元//一个数有逆元的充分必要条件是gcd(a,n)=1// 1式等价于 ax+ny=1 ---2//2式可用扩展欧几里得算法求出x0的值//其中最小逆元 x=(x0%n+n)%n //求出逆元后 (a/b)%n=(a*inv(a))%n 其中a*inv(a)=1(mod n) #include <iost...原创 2018-12-16 15:44:36 · 1485 阅读 · 0 评论 -
欧拉函数的三种求法
1、求给定的某个数的欧拉函数://写在前面//有公式phi(n)=n*(1-(1/p1))(1-(1/p2)).....//其中p1,p2,..为n的质因数 #include <iostream>using namespace std;int euler(int n){ int res=n,mid=n; for(int i=2;i*i<=mid;i++) ...原创 2018-12-16 17:27:24 · 4263 阅读 · 1 评论 -
高精度除法(精确到小数点后N位)
这种类型的高精度除法颇为简单,直接贴上代码//写在前面//对于精确到小数点后任意位数的高精度除法//只要简单的模拟除法过程就可//在直接用除法算出小数点前的整数后//改变被除数 a=(a%b)*10 a为被除数,b为除数 #include <iostream>using namespace std;int main(){ int num1,num2;cin>...原创 2019-01-21 20:50:13 · 4210 阅读 · 2 评论 -
矩阵快速幂(斐波拉契数列)
首先附上题目链接:http://poj.org/problem?id=3070有关矩阵快速幂的基础知识可以参考这篇博客#include <iostream>#include <string.h> #define maxn 105#define mod 1234567#define LL long longusing namespace std;//定义...原创 2019-03-18 19:38:22 · 267 阅读 · 0 评论