Cod sursa(job #2034888)

Utilizator eragon0502Dumitrescu Dragos eragon0502 Data 8 octombrie 2017 16:05:20
Problema Invers modular Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <cstdio>

using namespace std;

int main()
{
    freopen("inversmodular.in","r",stdin);
    freopen("inversmodular.out","w",stdout);

    int i,a,mod,n,div=0;
    scanf("%d %d",&a,&n);
    mod=n;

    for(i=2;i*i<=n;++i)
    {
        if(n%i==0)
            div+=((n-1)/i);
    }
    n-=div;
    n--;
    n--;

    long long ans=1,x=a;
    while(n>0)
   {
        if(n%2==1)
            ans=ans*x%mod;
        n=n/2;
        x=x*x%mod;
    }

    printf("%d",ans);

    return 0;
}