Cod sursa(job #370040)

Utilizator GotenAmza Catalin Goten Data 30 noiembrie 2009 00:38:35
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.38 kb
#include<fstream.h>
#include<math.h>
long a=1999999973;


long fct(int n,int p)
{
 long r,s=n,pp=1;
 if(n==1) return 1;
 while(s<a)
 {
  s*=n;
  pp++;
  if(pp==p)return s;
  }
 r=pow(n,(p%pp));
 n=s%a;
 p/=pp;
 return (r*fct(n,p))%a;
 }

int main()
{

 long n,p;
 ifstream f("lgput.in");
 ofstream g("lgput.out");
 f>>n>>p;
 g<<fct(n,p);
 return 0; 
 }