Cod sursa(job #3226605)
Utilizator | Mocanu Mihai-Adrian mmocanu | Data | 22 aprilie 2024 11:14:18 |
---|---|---|---|
Problema | Invers modular | Scor | 60 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define int long long
using namespace std;
int Inv1(int a,int b,int mod){
int ans;
ans=1;
while(b>0){
if(b%2==1){
ans*=a;
ans%=mod;
}
a*=a;
a%=mod;
b/=2;
}
return ans;
}
signed main(){
int a,m;
FILE *fin,*fout;
fin=fopen("inversmodular.in","r");
fout=fopen("inversmodular.out","w");
fscanf(fin,"%lld%lld",&a,&m);
fprintf(fout,"%lld",Inv1(a,m-2,m));
fclose(fin);
fclose(fout);
return 0;
}