Pagini recente » Cod sursa (job #809764) | Diferente pentru runda/redsnow_3 intre reviziile 21 si 22 | Diferente pentru utilizator/mihnea.anghel intre reviziile 43 si 39 | Diferente pentru utilizator/mihnea.anghel intre reviziile 19 si 20 | Cod sursa (job #1411291)
// cmmdc sau __gcd
// log(max(a,b))
#include <fstream>
using namespace std;
ifstream f("euclid2.in");
ofstream g("euclid2.out");
int n,a,b;
int cmmdc(int a, int b)
{
while (a!=b)
{
if (a>b) a=a-b;
else b=b-a;
}
return a;
}
//(a,b)=(b, a %b) = ... = (d, 0) = d
int cmmdc2(int a, int b)
{
int r;
while (b != 0)
{
r = a % b;
a = b;
b = r;
}
return a;
}
int main()
{
f>>n;
for (int i=1; i<=n; ++i)
{
f>>a>>b;
g<<cmmdc2(a,b)<<'\n';
}
f.close();
g.close();
return 0;
}