Cod sursa(job #1345264)

Utilizator serbanSlincu Serban serban Data 17 februarie 2015 14:42:47
Problema Invers modular Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>

using namespace std;

long long a,n,p,nr;

int puterea(int b,int k)
{
    if(k==0)
        return 1;
    if(k>>1<<1==k)
    {
        b*=b;
        b%=n;
        k>>=1;
        b=(puterea(b,k))%n;
    }
    else
    {
        long long c=b;
        b*=b;
        b%=n;
        k>>=1;
        b=(puterea(b,k)*c)%n;
    }
    return b;
}

int main()
{
    int i,j;
    FILE *f=fopen("inversmodular.in","r");
    FILE *g=fopen("inversmodular.out","w");
    fscanf(f,"%d %d",&a,&n);
    fprintf(g,"%d\n",(puterea(a,n-1))%n);
    return 0;
}