Cod sursa(job #418459)

Utilizator adrianraduleaRadulea Adrian adrianradulea Data 15 martie 2010 21:53:08
Problema Invers modular Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include<stdio.h>
FILE *f,*g;
long long a,n,x,p,i,m;
int main()
{ f=fopen("inversmodular.in","r"); g=fopen("inversmodular.out","w"); 
  fscanf(f,"%lld%lld",&a,&n);
  x=n; p=n;
  for(i=2;i*i<=x;i++)
    if(x%i==0) 
       { while(x%i==0) x/=i;
         p=(p/i)*(i-1);
	   }
  if(x!=1) p=n-1; p--;
  m=a;
  for(i=2;i<=p;i++) m=(m*a)%n;  
  fprintf(g,"%lld",m);
  fclose(g);
  return 0;
}