Nu am inteles exact bucatica aceasta de cod, imi explica cineva, va rog?
if(n > 1)
{
nd *= 2;
sd = (1LL*sd*(n + 1)) % MOD;
}
[EDIT]: De ce nd se inmulteste cu 2?
Înseamnă că la descompunerea în factori primi ai lui N, s-a găsit factorul prim
n (n != N) la puterea 1, deci se înmulțește numărul divizorilor cu 2, adică e+1, unde e = exponentul lui
n, adică 1.
Pentru suma divizorilor, se calculează conform formulei, fără să se aplice invers modular.
A făcut cineva problema pe euclid extins? Eu nu pot să iau decât 70 de puncte... Pe inversul cu mod-2 iau 100, dar sunt curios, de ce nu merge și pe euclid extins?