Cod sursa(job #265853)

Utilizator conttPop Mircea contt Data 24 februarie 2009 16:48:38
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>
using namespace std;
int main()
{
    unsigned long x,n,p;
    ifstream f("lgput.in");
    f>>x>>n;
    f.close();
    
    if (n%2==0)
    {p=x*x;n=n/2;} else p=1; 
    while (n>2)
    if (n%2==1) 
    {p=(p*x)%1999999973;
    n=n-1;
}
  else
  {
      p=(p*p)%1999999973;
      n=n-n/2;
      }
      
      if (n==2) p=(p*p)%1999999973;
        else if (n==1) p=(p*x)%1999999973;
      
  ofstream g("lgput.out");
  g<<p;
  g.close();
  return 0;
}