最大公约数,最小公倍数,素数,素数筛

Posted 叶小七

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大公约数,最小公倍数,素数,素数筛相关的知识,希望对你有一定的参考价值。

最大公约数
a、b的最大公约数是b,a%b的公约数,如果有一个等于0,最大公约数是a
 
int gcd(int a,int n){
if (b==0)
return a;
else
return gcd(b,a%b);
}
 
return b!=0 ? gcd(b,a%b):a;
 
最小公倍数
是两数的乘积除以他们的最大公约数
 
素数筛
输出2-10000之间的所有素数
从2开始遍历,标记每个数的所有倍数为非素数
void sushu(){
for (int i=0;i<10000;i++){
mark[i]=false;
}
size=0;
for (int i=2;i<10000;i++){
if (mark[i]==true)
continue;
 
//下面其实就是上面if的else
prime[size++] = i;
for (int j=i*i;j<10000;j+=i)
//j从i*i开始能够节约时间,因为2i,3i,,,ki(k<i)都被标记过了
mark[j]=true;
}
}

以上是关于最大公约数,最小公倍数,素数,素数筛的主要内容,如果未能解决你的问题,请参考以下文章

Prime Distance(区间筛)

线性筛素数

质数距离(筛素数)

Codeforces Round #511 (Div. 2)-C - Enlarge GCD (素数筛)

[luoguP1835] 素数密度_NOI导刊2011提高(04)(素数筛)

素数筛法