Cod sursa(job #1503597)

Utilizator BlackREzRadut Alexandru Catalin BlackREz Data 16 octombrie 2015 16:01:37
Problema Invers modular Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>
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);
}
int solve(int x , int y){
    int i,nr=1,k=1;

    if(x%y==0 || y%x==0)
            return -1;
    else{
        for(i=2;i<y;i++)
            if(euclid(y,i)==true) nr++;
        for(i=1;i<nr;i++){
        k=x*k;
        }
        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;
}