Cod sursa(job #431755)

Utilizator gyeresihunorGyeresi Hunor gyeresihunor Data 1 aprilie 2010 13:06:00
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 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);
	long nn=n;
	int e=0;
	while(nn)
	{
		t[e++]=nn%2;
		nn/=2;
	}
	eredmeny=1;
	for(int i=0;i<e;i++)
	{
		if(t[i]==1)
			eredmeny*=akh%m;
		akh*=akh%m;
	}
	fprintf(g,"%ld",eredmeny);
	fclose(f);
	fclose(g);
	return 0;
}