Pagini recente » Cod sursa (job #2477832) | Cod sursa (job #2181942) | Cod sursa (job #1699130) | Cod sursa (job #951053) | Cod sursa (job #1623893)
#include <cstdio>
#include <iostream>
using namespace std;
long long a=0;
int n,v[100],vv[100];
int main()
{
FILE *f=fopen("lgput.in","r");
fscanf(f,"%d%d",&a,&n);
FILE *g=fopen("lgput.out","w");
int k=1;
while(n)
{
v[k++]=n%2;
n=n/2;
}
int o=0;
for(int i=1;i<k;i++)
{ if(v[i]==1)
vv[++o]=(v[i]<<i-1);
}
int nrnou=0;
long long anou=1;
int p=1;
k=0;
int ok=99;
while (ok>2)
{
if(p==vv[k+1]) {anou=(anou*a)%1999999973; k++;}
if(vv[k+1]==0) ok=1;
a=(a*a)%1999999973; p=p*2;
}
fprintf(g,"%d",anou);
return 0;
}