const ll N=1e6+5;
ll lp[N];
ll mob[N];
void mobiusPreCalc(){
mob[1] = 1;
for (ll i = 2; i < N; ++i) {
if (!lp[i]) for (ll j = i; j < N; j += i)
if (!lp[j]) lp[j] = i;
mob[i] = [](ll x) {
ll cnt = 0;
while (x > 1) {
ll k = 0, d = lp[x];
while (x % d == 0) {
x /= d;
++k;
if (k > 1) return 0;
}
++cnt;
}
if (cnt & 1) return -1;
return 1;
}(i);
}
}
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন