约数
约数就是因数,当b/a,那么b就是a的约数,a就是b的倍数(a、b为整数)
比如a=6,b=3。
当两个数拥有同一个约数时,这个约数就叫做这两个数的公约数,最大的公约数就叫最大公因数。
当两个数拥有同一个倍数时,这个倍数就叫做这两个数的公倍数,最小的公倍数就叫最小公倍数。
例题:洛谷B3736 [信息与未来 2018] 最大公约数
直接使用C++库里的__gcd()
当然要自己手写啊!这里的gcd函数我们就使用辗转相除法。
int gcd(int x,int y){
if(y==0)return x;
return gcd(y,x%y);
}
质数
当一个数,它的因数只有1和它自己,那么这个数就是质数。
比如,2、3、5、7、11
判断一个数是不是质数,最快的方式就是枚举2到sqrt(x)是不是这数的因数,如果都不是的话,这个数就是质数。
有时候需要判断很多数是不是质数,就要用质数筛,这里提供一个埃式筛的做法。
bool t[1000005];
int main(){
int n;
cin>>n;
for(int i=2;i<=n;i++){
if(!t[i]){
for(int j=i*i;j<=n;j+=i){
t[j]=1;
}
}
}
return 0;
}
同余
当两个数a和b除以m的余数相同时,我们称a与b在模m下同余。例如,12和15在模3下就是同余的。
在模运算中,同余的数在加减乘运算时可以互相替换而不影响结果。比如:(12 + 1) % 3 = 1,换成(15 + 1) % 3同样得到1。
1147

被折叠的 条评论
为什么被折叠?



