Share Pastebin
Guest
Public paste!

Untitled

By: a guest | Mar 22nd, 2010 | Syntax: Pascal | Size: 1.01 KB | Hits: 122 | Expires: Never
This paste has a previous version, view the difference. Copy text to clipboard
  1. //Rozszerzony algorytm Euklidesa
  2. //Konrad Groschang index:142976
  3. //konrad.groschang@gmail.com
  4. //xserve@stud.ics.p.lodz.pl
  5.  
  6. #include <stdio.h>
  7. #include <iostream>
  8.  
  9. using namespace std;
  10.  
  11. int main()
  12. {
  13.         //deklaracja zmiennych
  14.         long long int A,B, //pobrane wspolczynniki
  15.         a,b, //kolejne modula
  16.         x,x1,x2,y,y1,y2,//kolejne ilorazy
  17.         q,c;// floor(a/b) oraz mod(a%b)
  18.        
  19.         while ( cin ) {
  20.        
  21.                 cin>>A>>B;
  22.                
  23.         //wyraz A z zalozenia modulo jest wiekszy - jesli jest inaczej zamieniamy kolejnosc
  24.                 if (A < B)
  25.                 {
  26.                         a = B;
  27.                         B = A;
  28.                         A = a;
  29.                 }
  30.                 //przepisujemy wczytane dane do zmiennych poddawanych dzialaniom modulo
  31.         a = A;
  32.         b = B;
  33.         //inicjalizacja zmiennych do przechowywania kolejnych iloczynow
  34.         x2 = 1;
  35.         x1 = 0;
  36.         y2 = 0;
  37.         y1 = 1;
  38.         //algorytm
  39.         while (b != 0)
  40.         {
  41.                 c = a%b;
  42.                 q = a/b;
  43.                
  44.                 a = b;
  45.                 b = c;
  46.                
  47.                 x = x2 - q*x1;
  48.                 x2 = x1;
  49.                 x1 = x;
  50.                
  51.                 y = y2 - q*y1;
  52.                 y2 = y1;
  53.                 y1 = y;      
  54.                
  55.         }
  56.                
  57.                 cout<<x2<<" "<<y2<<" "<<x2*A+y2*B<<"\n";
  58. }
  59.        
  60.        
  61.         system("pause");
  62.         return 0;
  63. }