home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 August / PCWorld_2001-08_cd.bin / Komunikace / phptriad / phptriadsetup2-11.exe / php / pear / Math / Util.php < prev   
PHP Script  |  2001-01-10  |  2KB  |  59 lines

  1. <?php
  2. //
  3. // +----------------------------------------------------------------------+
  4. // | PHP version 4.0                                                      |
  5. // +----------------------------------------------------------------------+
  6. // | Copyright (c) 1997-2001 The PHP Group                                |
  7. // +----------------------------------------------------------------------+
  8. // | This source file is subject to version 2.02 of the PHP license,      |
  9. // | that is bundled with this package in the file LICENSE, and is        |
  10. // | available at through the world-wide-web at                           |
  11. // | http://www.php.net/license/2_02.txt.                                 |
  12. // | If you did not receive a copy of the PHP license and are unable to   |
  13. // | obtain it through the world-wide-web, please send a note to          |
  14. // | license@php.net so we can mail you a copy immediately.               |
  15. // +----------------------------------------------------------------------+
  16. // | Authors: Sebastian Bergmann <sb@sebastian-bergmann.de>               |
  17. // +----------------------------------------------------------------------+
  18. //
  19. // $Id: Util.php,v 1.2 2001/01/10 01:01:56 ssb Exp $
  20. //
  21.  
  22.   // {{{ gcd( $a, $b )
  23.  
  24.   /**
  25.   * Calculates the Greatest Common Divisor (gcd) of two numbers.
  26.   *
  27.   * @param  int a first number
  28.   * @param  int b second number
  29.   * @return int result gcd(a,b)
  30.   * @access public
  31.   */
  32.  
  33.   function gcd( $a, $b )
  34.   {
  35.     // make sure that $a > $b holds true
  36.     if( $b > $a )
  37.     {
  38.       // swap $a and $b
  39.       list( $a, $b ) = array( $b, $a );
  40.     }
  41.  
  42.     // init $c to 1
  43.     $c = 1;
  44.  
  45.     // the magic loop (thanks, Euclid :-)
  46.     while( $c > 0 )
  47.     {
  48.       $c = $a % $b;
  49.       $a = $b;
  50.       $b = $c;
  51.     }
  52.  
  53.     // return result
  54.     return $a;
  55.   }
  56.  
  57.   // }}}
  58. ?>
  59.