Cod sursa(job #431743)

Utilizator gyeresihunorGyeresi Hunor gyeresihunor Data 1 aprilie 2010 12:59:50
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>

int m=1999999973;

int main()
{
	FILE *f=fopen("lgput.in","r");
	FILE *g=fopen("lgput.out","w");
	char t[100]="";
	long a,b,n;
	long akh;
	long eredmeny=1;
	fscanf(f,"%ld",&a);
	akh=a;
	fscanf(f,"%ld",&n);
	itoa(n,t,2);
	strrev(t);
	eredmeny=1;
	for(int i=0;i<strlen(t);i++)
	{
		if(t[i]=='1')
			eredmeny*=akh%m;
		akh*=akh%m;
	}
	fprintf(g,"%ld",eredmeny);
	fclose(f);
	fclose(g);
	return 0;
}