https://lucashsu95.github.io/LucasHsu.dev/python/112全國技藝競賽筆記/15-其他/spf

https://codeforces.com/blog/entry/54090

std::vector <int> prime;
bool is_composite[MAXN];

void sieve (int n) {
	std::fill (is_composite, is_composite + n, false);
	for (int i = 2; i < n; ++i) {
		if (!is_composite[i]) prime.push_back (i);
		for (int j = 0; j < prime.size () && i * prime[j] < n; ++j) {
			is_composite[i * prime[j]] = true;
			if (i % prime[j] == 0) break;
		}
	}
}
def sieve_spf(n):
    spf = [0]*(n+1)
    primes = []
    for i in range(2, n+1):
        if spf[i]==0:
            spf[i]=i
            primes.append(i)
        for p in primes:
            if p>spf[i] or p*i>n: break
            spf[p*i]=p
    return spf

|

v