Pagini recente » Cod sursa (job #3323289) | Monitorul de evaluare | Cod sursa (job #1765065) | Cod sursa (job #2280770) | Cod sursa (job #1038207)
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <string>
#include <stdlib.h>
#include <assert.h>
#include <time.h>
#include <algorithm>
#include <vector>
#include <cstdio>
#include <cstring>
#include <fstream>
#include <queue>
#include<cstdlib>
using namespace std;
#define MAXN 101
#define MOD 1999999973
#define INF 1<<30
int v[MAXN];
long long int expbysquaring(long long int x, long long int n)
{
if ( n < 0 )
return (expbysquaring(1/x , -n) % MOD);
else if ( n == 0 )
return 1;
else
if ( n == 1 )
return x % MOD;
else
if ( n % 2 == 0 )
return (expbysquaring((x * x) % MOD, n/2)) % MOD;
else
if ( n % 2 > 0 )
return ( x * expbysquaring((x * x) % MOD, (n-1)/2)) % MOD;
}
int main()
{
FILE *f = fopen("lgput.in", "r");
FILE *g = fopen("lgput.out", "w");
long long int A, N;
fscanf(f, "%lld %lld", &A, &N);
printf("%lld", ( expbysquaring(A, N) ) % MOD);
fclose(f); fclose(g);
return 0;
}