Advertisement
enedil

nwd

Nov 11th, 2013
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int nwd(int a, int b);
  6. int najwieksza = 0;
  7.  
  8. int main()
  9. {
  10.     int liczbaLiczb;
  11.     cin >> liczbaLiczb;
  12.     int *liczby = new int[liczbaLiczb];
  13.     for (int i = 0; i < liczbaLiczb; i++)
  14.     {
  15.         cin >> liczby[i];
  16.     }
  17.     for (int i = 0; i < liczbaLiczb; i++)
  18.     {
  19.         for (int j = 0; j < liczbaLiczb; j++)
  20.         {
  21.             if (i >= j)
  22.             {
  23.                 continue;
  24.             }
  25.             else if (nwd(liczby[i], liczby[j]) > najwieksza)
  26.             {
  27.                 najwieksza = nwd(liczby[i], liczby[j]);
  28.             }
  29.         }
  30.     }
  31.     cout << najwieksza;
  32. }
  33.  
  34. int nwd(int a, int b) {
  35.  
  36.     int c;                    //tworzymy zmienną c o typie int
  37.     while (b != 0)                  //tworzymy pętlę działającą gdy b ≠ 0
  38.     {
  39.  
  40.         c = a%b;                  //zmienna c przyjmuje wartość a modulo b
  41.         a = b;                       //przypisujemy b do a
  42.         b = c;                    //przypisujemy c do b
  43.  
  44.     }
  45.     return a;                    //zwracamy a, czyli żądane NWD(a,b)
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement