Pagini recente » Cod sursa (job #178071) | Cod sursa (job #2902045) | Diferente pentru blog/viata-dupa-olimpiade-1 intre reviziile 27 si 30 | Cod sursa (job #2189737) | Cod sursa (job #2985891)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");
int p[33],m_b2[33], l;
int b10_la_b2(unsigned int a) {
l=0;
while (a!=0) {
m_b2[l]=(a%2);
a/=2;
l++;
}
}
int main()
{
unsigned int n, m;
unsigned long long putere=1;
fin >> n >> m;
p[0]=1;
p[1]=(n*n)%1999999973;
b10_la_b2(m);
for (int j=2;j<=l;j++) { ///generare puteri
p[j]=(p[j-1]%1999999973)*(p[j-1]%1999999973)%1999999973;
}
for (int j=0;j<l;j++) {
if (m_b2[j]==1) putere=(putere*p[j])%1999999973;
}
fout << putere;
}