码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-07-22 22:35:01      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:oid   标记   ext   时间   约数   开始   ++   等于   最小公倍数   

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

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

标签:oid   标记   ext   时间   约数   开始   ++   等于   最小公倍数   

原文地址:http://www.cnblogs.com/yexiaoqi/p/7222539.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!