Source of gcd_iter.cpp


  1: // Filename: GCD_ITER.CPP
  2: // Purpose:  Finds the greatest common divisor (GCD) of pairs
  3: //           of positive integers.  The GCD of each pair is
  4: //           output immediately after the input of the pair.
  5: //           The input of pairs is terminated by entering the
  6: //           end-of-file character.

  8: #include <iostream>
  9: using namespace std;

 11: int GCD(/* in */ int a, /* in */ int b)
 12: // Pre:  Both a and b have been initialized with nonnegative integer
 13: //       values, and at least one of a or b is strictly positive.
 14: // Post: The function value is the GCD of a and b.
 15: {
 16:     int temp;
 17:     while (b != 0)
 18:     {
 19:         temp = b;
 20:         b = a % b;
 21:         a = temp;
 22:     }
 23:     return a;
 24: }

 26: int main()
 27: {
 28:     cout << "\nThis program finds the greatest "
 29:          << "common divisor (GCD) of \n"
 30:          << "pairs of positive integers. \n\n";

 32:     int first, second;
 33:     while (cin)
 34:     {
 35:         cout << "Enter two positive integers, "
 36:              << "separated by at least one \n"
 37:              << "space, followed by ENTER, "
 38:              << "or enter end-of-file to quit: \n";

 40:         cin  >> first >> second;
 41:         if (cin)
 42:         {
 43:             cout << "GCD(" << first  << ","
 44:                            << second << ") = "
 45:                  << GCD(first, second)         << "\n\n";
 46:         }
 47:     }

 49:     return 0;
 50: }