Cod sursa(job #3164968)

Utilizator oliv_1Bostinescu Octavian oliv_1 Data 4 noiembrie 2023 21:07:57
Problema Suma divizorilor Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("sumdiv.in");
ofstream cout("sumdiv.out");
int p=1,mod=9901,prod=1;
int put(int a,int b)
{
    p=1;
    while(b>0)
    {
    if(b%2==1)
    p=(p*a)%mod;
    a=(a*a)%mod;
    b/=2;
    }
    return p%mod;

}
int invmod(int x)
{
    return put(x,mod-2);
}
int main()
{
   int a,b,cnt=0,t,d=2;
   cin>>a>>b;
   while(a>1)
   {
       cnt=0;
       if(a%d==0)
       {


    while(a%d==0)
    {
        cnt++;
        a/=d;
    }
 t=put(d,cnt*b+1);
 if(t%mod==1)
    t=1;

 prod*=((t-1)*invmod(d-1))%mod;
       }
 d++;


   }
   cout<<prod;

    return 0;
}