Cod sursa(job #2270479)
| Utilizator | Data | 27 octombrie 2018 11:16:21 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <iostream>
#include <fstream>
using namespace std;
int cmmdc(int a, int b)
{
if(a == 0)
return b;
if(b == 0)
return a;
if( (a & 1) == 0 && (b & 1) == 0)
return cmmdc(a >> 1, b >> 1) *2;
if( (a & 1) == 0)
return cmmdc(a >> 1, b);
if( (b & 1) == 0)
return cmmdc(a, b >> 1);
if(a > b)
return cmmdc(a - b, b);
return cmmdc(a, b - a);
}
int main()
{
ifstream f("cmmdc.in");
ofstream g("cmmdc.out");
int a, b;
f >> a >> b;
g << cmmdc(a, b);
return 0;
}
