cpp中求最大公约数,最小公倍数,以及用埃氏筛快速求1到n的所有素数

int gcd(int a, int b) {
while(b) {
int t = b;
b = a % b;
a = t;
}
return a;
}

long long lcm(long long a, long long b) {
return a / gcd(a, b) * b; //先除后乘,避免溢出
}

const int MAX = 1e6 + 10;
bool isPrime[MAX];

void sieve(int n) {
memset(isPrime, 1, sizeof(isPrime));
isPrime[0] = isPrime[1] = 0;
for(int i = 2; i * i <= n; i++) {
if(isPrime[i]) {
for(int j = i * i; j <= n; j += i)
isPrime[j] = 0;
}
}
}

posted @ 2026-04-10 21:56  lagranSun  阅读(1)  评论(0)    收藏  举报