最大公约数、素数
一、最大公约数
//求最大公约数函数
int gcd(int a,int b)
return b == 0 ? a : gcd(b, a % b);
二、最小公倍数
//求最大公约数函数
int gcd(int a,int b)
return b == 0 ? a : gcd(b, a % b);
//求最小公倍数
long long int lcm(int a,int b)
return a * b / gcd(a, b);
三、素数
1. 伯特兰—切比雪夫定理
若整数n > 3,则至少存在一个质数p,符合n < p < 2n − 2。另一个稍弱说法是:对于所有大于1的整数n,至少存在一个质数p,符合n < p < 2n。
-
若k+1为质数
1、2 - n+1不包含k+1的倍数则显然仅需一步
2、否则,告诉不是k+1倍数的所有数,然后显然gcd(x*(k+1),x*(k+1)+1)=1,所以仅需两步*** -
若k+1为合数
则第一步告诉(n+1)/2<p<n+1的一个质数(伯特兰—切比雪夫定理)p
显然n+1中不包含p的倍数所以仅需两步