Cod sursa(job #2931063)

Utilizator Stormtrooper-007Vartic Rihard Stormtrooper-007 Data 30 octombrie 2022 14:02:09
Problema Suma divizorilor Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>

using namespace std;
int lgput(int a,int b,int mod)
{int c=1;
    while(b>0)
  {
      if(b%2==1)
      c=(c*a)%mod;
      a=(a*a)%mod;
      b/=2;
  }
  return c;
}
int main()
{
 ifstream cin("sumdiv.in");
  ofstream cout("sumdiv.out");
  int a,b;
  cin>>a>>b;
  int d=2,nd=1,mod=9901;
  while(d*d<=a)
  {int cnt=0;
    while(a%d==0)
    {
      a=a/d;
      cnt++;
    }
    //cnt++;
    nd=nd*(lgput(d,(cnt)*b+1,mod)-1)*lgput(d-1,mod-2,mod);
    nd=nd%mod;
    d++;
  }
  if(a>1)
  {
    nd=nd*(lgput(a,b+1,mod)-1)*lgput(a-1,mod-2,mod);
    nd=nd%mod;
  }
  cout<<nd;
    return 0;
}