Cod sursa(job #3234167)

Utilizator AleX102004Alexandru Staiculescu AleX102004 Data 6 iunie 2024 19:41:43
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
#include <stdlib.h>

long long int expon(int n, int p, int m){
	long long int x;
	if(p<=1)
		return n%m;
	x=expon(n,p/2,m);
	x=x%m;
	if(p&1)
		return n*x*x;
	return x*x;
}



int main(){
	long long int n,p,sol;
	long long int m=1999999973;
	FILE *f,*g;
	if((f=fopen("lgput.in","r"))==NULL){
		printf("eroare fisier\n");
		exit(1);
	}
	if((g=fopen("lgput.out","w"))==NULL){
		printf("eroare fisier\n");
		exit(1);
	}
	fscanf(f,"%lld",&n);
	fscanf(f,"%lld",&p);
	sol=expon(n,p,m);
	sol=sol%m;
	fprintf(g,"%lld",sol);
	fclose(f);
	fclose(g);
}