Cod sursa(job #3357318)

Utilizator Alexia_vAlexia Verebeli Alexia_v Data 8 iunie 2026 19:29:26
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include<stdio.h>

#define MOD  1999999973
unsigned long long putere(unsigned long long n, unsigned long long p)
{
  unsigned long long r=1;
  n=n%MOD;

  while(p>0)
    {
      if(p%2==1)
	r=r*n%MOD;
      n=n*n%MOD;
      p=p/2;
    }
  return r;
}

int main()
{
  FILE *fin=fopen("lgput.in","r");
  FILE *fout=fopen("lgput.out","w");

  if(fin==NULL || fout==NULL)
    {
      perror("eroare deschidere fisiere");
      return 1;
    }
    
  unsigned long long n,p;

  if(fscanf(fin,"%llu %llu",&n,&p)!=2)
    {
      printf("citire incorecta\n");
      return 1;
    }

  fprintf(fout,"%llu\n",putere(n,p));
  
  fclose(fin);
  fclose(fout);
  return 0;
}