Cod sursa(job #571752)

Utilizator Rares95Rares Arnautu Rares95 Data 4 aprilie 2011 19:16:14
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream.h>
ifstream f("lgput.in");
ofstream g("lgput.out");
#define MOD 10000
long long n,c,p,r;

/*long long S(long long a, long long n)
{	long long q; 
	if(n == 0) return 1;
	q = S(a, n/2);
	q=(q*q);
	if(n % 2) q=(q*a);
	return q;
}
*/
long long S()
{	r = 1, c = n;
	while (p > 0)
  {	if (p & 1)
    {	r = (r * c) % MOD;
      p = p ^ 1;
    }
    else 
    { c = (c*c) % MOD;
      p = p >> 1;
    }
  }
	return r;
}
int main()
{	f>>n>>p;
	g<<S()<<'\n';
	g.close(); return 0;
}