Cod sursa(job #327500)

Utilizator bugyBogdan Vlad bugy Data 29 iunie 2009 11:26:31
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<stdio.h>   
#define mod 1999999973   
using namespace std;   
  
int x,n;   
  
int put(int x, int n)   
{
	long long r;   
    if(n==0) 	return 1;   
        else if(n%2==0)   
            {
				r=put(x,n/2);   
                return (r*r)%mod;   
            }   
            else { r=put(x,n/2);   
                   return (r*r*x)%mod;   
                 }   
}   
  
int main()   
{ 
  
    FILE *f=fopen("lgput.in","r"), *g=fopen("lgput.out","w");          
    fscanf(f, "%d%d", &x, &n);   
       
    fprintf(g, "%lld\n", (long long)put(x,n));     
       
    fclose(f);   
    fclose(g);   
    return 0;      
}