首页 > 代码库 > 最大公约数,最小公倍数,素数,素数筛

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

最大公约数
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;
}
}

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