数论
再次声明这只是本人整理的学习笔记,只是为了和我一样在学习的萌新分享一下学习的资料,若有重复的地方实属正常,同时没有转载只是因为自己多了一些批注的地方。(●'◡'●)
1、求最大不能组合数
已知两个数,求两个数字不能够被组合出的最大数字
例如:4和7的最大不能组合数是17
公式:a*b-a-b
[homework_detail_problem - 历届试题 带分数 - 追梦算法网]:
#include <bits/stdc++.h> using namespace std; int main() { int n,m; cin>>n>>m; cout<<n*m-n-m<<endl;//带入公式 return 0; }
2、同余定理
给定一个正整数m,如果两个整数a和b满足a-b能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m)。对模m同余是整数的一个等价关系。
例题:Problem Detail - Fibonacci数列 - 追梦算法网斐波拉契问题
公式**:**(a+b) mod n=((a mod n) + (b mod n)) mod n
(a-b) mod n=((a mod n) - (b mod n)) mod n
(a✖b) mod n=((a mod n) ✖ (b mod n)) mod n
除法是没有取余的!!!!
3、最大公约数(GCD)
定义: 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。
一定注意左边的数字是大于右边的数字的!!!!
//有两种方法 //第一种:更相减损法 int way1(int a,int b){ if(a==0){ return b; } if(b==0){ return a; } if(a==b){ return a; } if(a>b){ return way1(a-b,b); } if(a<b){ return way1(a,b-a); } } //第二种方法:辗转相除法 int way2(int a,int b){ while(b>0){ int t=a%b; a=b; b=t; } return a; }
4、最小公倍数 (LCM)
定义: 最小公倍数是一种数学概念,是指两个或多个整数公有的倍数中,除0以外最小的一个公倍数 。
公式:()