Eu calculez A! in felul urmator si nu stiu daca e corect. Fac vectorul F [ i ] = i! , unde i<P. Apoi folosesc o formula , considerand ca divizorii lui P se reduc.
Formula arata cam asa:
Fact(A) = ( F [ P-1 ] ^ (A / P) ) * ( F [ P-1 ] ^ (A / ( P * ( P-1 ) )) ) * F [ A%P ] * F [ A% ( P * (P-1) ) ]
Evident , ce e mai sus e totul %P.
De exemplu pentru factorial 13 si P=5 ma gandesc in felul urmator:
1 * 2 * 3 * 4 * 1 * 1 * 2 * 3 * 4 * 2 * 1 * 2 * 3
Adica am ( 1*2*3*4 ) ^2 = F[4] ^2 = ( F [ P-1 ] ^ ( A / P ) ) , 1 * 2 = F[2] =F[ A%( P * (P-1) ) ] si 1 * 2 * 3 = F[3] = F [ A%P ]
Nu reusesc sa imi dau seama de greseala. Daca cineva are o idee asemenatoare sa imi spuna.
In problema toate cele 3 factoriale le calculez asa si apoi fac invers modular cu Fact(A) / Fact( B ) / Fact( A-B ) .
Multumesc anticipat.