Pagini recente » Istoria paginii runda/oni2018ziua1 | Istoria paginii runda/simlotvrancea2010baraj1/clasament | Cod sursa (job #1736624) | Istoria paginii runda/oni_11_12_11/clasament | Cod sursa (job #1508314)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
int euclid(int a, int b){
int temp;
temp=a%b;
a=b;
b=temp;
if(b==0)
if(a==1) return true;
else return false;
if(b!=0) euclid(a,b);
}
double solve(int x , int y){
int i;
int k=1,nr=1;
if(x%y==0 || y%x==0)
return -1;
else{
for(i=2;i<y;i++)
if(euclid(y,i)==true) nr++;
k=pow(k ,nr);
return k % y;
}
}
int main()
{
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
int x,y;
f>>x>>y;
g<<solve(x , y);
return 0;
}