求素数

1
2
3
4
5
6
7
int su(int b)
{
for(int i=2;i<=(int)sqrt(b);i++) {
if(b%i==0) return 0;
}
return 1;
}

最大公约数和最小公倍数

欧几里得定力:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。

1
2
3
4
5
6
7
8
9
int gcd(int a,int b)  //最大公约数
{
if(b==0) return a;
else return gcd(b,a%b);
}
int lcm(int a,int b) //最小公倍数
{
return a/gcd(a,b)*b;
}