Untitled
By: a guest | Mar 22nd, 2010 | Syntax:
Pascal | Size: 1.01 KB | Hits: 122 | Expires: Never
//Rozszerzony algorytm Euklidesa
//Konrad Groschang index:142976
//konrad.groschang@gmail.com
//xserve@stud.ics.p.lodz.pl
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
//deklaracja zmiennych
long long int A,B, //pobrane wspolczynniki
a,b, //kolejne modula
x,x1,x2,y,y1,y2,//kolejne ilorazy
q,c;// floor(a/b) oraz mod(a%b)
while ( cin ) {
cin>>A>>B;
//wyraz A z zalozenia modulo jest wiekszy - jesli jest inaczej zamieniamy kolejnosc
if (A < B)
{
a = B;
B = A;
A = a;
}
//przepisujemy wczytane dane do zmiennych poddawanych dzialaniom modulo
a = A;
b = B;
//inicjalizacja zmiennych do przechowywania kolejnych iloczynow
x2 = 1;
x1 = 0;
y2 = 0;
y1 = 1;
//algorytm
while (b != 0)
{
c = a%b;
q = a/b;
a = b;
b = c;
x = x2 - q*x1;
x2 = x1;
x1 = x;
y = y2 - q*y1;
y2 = y1;
y1 = y;
}
cout<<x2<<" "<<y2<<" "<<x2*A+y2*B<<"\n";
}
system("pause");
return 0;
}