一、最大公约数。
//gcd()
int gcd(int a,int b){
if(b == 0) return a;
else return gcd(b,a%b);
}
//非递归形式:
int gcd(int a,int b){
int tmp;
while(b!=0){
tmp = a;
a = b;
b = tmp%b;
}
return a;
}
二、最小公倍数。
//lcm()
int lcm(a,b){
int d = gcd(a,b);
return (a/d)*b;
}
三、素数
bool isPrime(int n){
if(n<=1) return false;
int limit = (int)sqrt(n);
for(int i = 2;i<=limit;i++){
if(n%i == 0) return false;
}
return true;
}
//素数筛法
const int maxn = 1000;
int prime[maxn];
int mark[maxn]={0};
int num =0;
void getprime(){
for(int i =2;i<maxn;i++){
if(mark[i] == 0){
prime[num++] = i;
for(int j = i+i;j<maxn;j +=i){