Pagini recente » Cod sursa (job #1716512) | Cod sursa (job #324864) | Cod sursa (job #1758481) | Cod sursa (job #111447) | Cod sursa (job #2466935)
#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;
}