Cod sursa(job #2466935)

Utilizator paulm238Madaras Paul paulm238 Data 3 octombrie 2019 11:45:36
Problema Invers modular Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream in("inversmodular.in");
ofstream out("inversmodular.out");
int n,p,v[50]={-1},c,k,f;
void bi(int c, int v[51])
{
    int i=1;
    int y=c%2;
    v[i]=y;
    c=c/2;
    if(c!=0)
        bi(c,v);
}
void nr(int v[51], int k)
{
    int i;
    for(i=50;i>=1;i--)
    {
        if(v[i]!=-1)
           k=i;
    }
    cout<<k;
}
int putere(int n, int v[51], int k)
{
    int j=1;
    int i;
    for(i=k;i>=1;i--)
    {
        j=j*j;
        if(v[i]==1)
            j=j*n;
    }
    return j;
}
int main()
{
    cin>>n>>p;
    c=p;
    bi(c,v);
    nr(v,k);
    f=putere(n,v,k);
    cout<<f;
    return 0;
}