Method that calculates the Greatest Common Divisor (GCD) of two positive integer numbers. : Math « Development Class « C# / C Sharp

Home
C# / C Sharp
1.2D Graphics
2.Class Interface
3.Collections Data Structure
4.Components
5.Data Types
6.Database ADO.net
7.Design Patterns
8.Development Class
9.Event
10.File Stream
11.Generics
12.GUI Windows Form
13.Language Basics
14.LINQ
15.Network
16.Office
17.Reflection
18.Regular Expressions
19.Security
20.Services Event
21.Thread
22.Web Services
23.Windows
24.Windows Presentation Foundation
25.XML
26.XML LINQ
C# / C Sharp by API
C# / CSharp Tutorial
C# / CSharp Open Source
C# / C Sharp » Development Class » MathScreenshots 
Method that calculates the Greatest Common Divisor (GCD) of two positive integer numbers.
 
    
/*
* CVS identifier:
*
* $Id: MathUtil.java,v 1.15 2001/09/14 08:48:51 grosbois Exp $
*
* Class:                   MathUtil
*
* Description:             Utility mathematical methods
*
*
*
* COPYRIGHT:

* This software module was originally developed by Raphaël Grosbois and
* Diego Santa Cruz (Swiss Federal Institute of Technology-EPFL); Joel
* Askelöf (Ericsson Radio Systems AB); and Bertrand Berthelot, David
* Bouchard, Félix Henry, Gerard Mozelle and Patrice Onno (Canon Research
* Centre France S.A) in the course of development of the JPEG2000
* standard as specified by ISO/IEC 15444 (JPEG 2000 Standard). This
* software module is an implementation of a part of the JPEG 2000
* Standard. Swiss Federal Institute of Technology-EPFL, Ericsson Radio
* Systems AB and Canon Research Centre France S.A (collectively JJ2000
* Partners) agree not to assert against ISO/IEC and users of the JPEG
* 2000 Standard (Users) any of their rights under the copyright, not
* including other intellectual property rights, for this software module
* with respect to the usage by ISO/IEC and Users of this software module
* or modifications thereof for use in hardware or software products
* claiming conformance to the JPEG 2000 Standard. Those intending to use
* this software module in hardware or software products are advised that
* their use may infringe existing patents. The original developers of
* this software module, JJ2000 Partners and ISO/IEC assume no liability
* for use of this software module or modifications thereof. No license
* or right to this software module is granted for non JPEG 2000 Standard
* conforming products. JJ2000 Partners have full right to use this
* software module for his/her own purpose, assign or donate this
* software module to any third party and to inhibit third parties from
* using this software module for non JPEG 2000 Standard conforming
* products. This copyright notice must be included in all copies or
* derivative works of this software module.

* Copyright (c) 1999/2000 JJ2000 Partners.
* */
using System;
namespace CSJ2K.j2k.util
{
  
  /// <summary> This class contains a collection of utility methods fro mathematical
  /// operations. All methods are static.
  /// 
  /// </summary>
  public class MathUtil
  {

    /// <summary> Method that calculates the Greatest Common Divisor (GCD) of two
    /// positive integer numbers.
    /// 
    /// </summary>
    public static int gcd(int x1, int x2)
    {
      if (x1 < || x2 < 0)
      {
        throw new System.ArgumentException("Cannot compute the GCD " "if one integer is negative.");
      }
      int a, b, g, z;
      
      if (x1 > x2)
      {
        a = x1;
        b = x2;
      }
      else
      {
        a = x2;
        b = x1;
      }
      
      if (b == 0)
        return 0;
      
      g = b;
      
      while (g != 0)
      {
        z = a % g;
        a = g;
        g = z;
      }
      return a;
    }
    
    /// <summary> Method that calculates the Greatest Common Divisor (GCD) of several
    /// positive integer numbers.
    /// 
    /// </summary>
    /// <param name="x">Array containing the numbers.
    /// 
    /// </param>
    public static int gcd(int[] x)
    {
      if (x.Length < 2)
      {
        throw new System.ApplicationException("Do not use this method if there are less than" " two numbers.");
      }
      int tmp = gcd(x[x.Length - 1], x[x.Length - 2]);
      for (int i = x.Length - 3; i >= 0; i--)
      {
        if (x[i0)
        {
          throw new System.ArgumentException("Cannot compute the least " "common multiple of " "several numbers where " "one, at least," "is negative.");
        }
        tmp = gcd(tmp, x[i]);
      }
      return tmp;
    }
   }
}

   
  
Related examples in the same category
1.Demonstrate Math.Sin(), Math.Cos(), and Math.Tan(). Demonstrate Math.Sin(), Math.Cos(), and Math.Tan().
2.Find the radius of a circle given its area. Find the radius of a circle given its area.
3.Math operators
4.Use Math.Round
5.Math.Sign
6.Math.Abs
7.Math.Min
8.Converts a degrees angle into a radians angle.
9.Converts a radians angle into a degrees angle.
10.Converts degrees to radians.
11.Gets the mean value from a list
12.Gets the median from the list
13.Gets the standard deviation
14.Statistical functions: Mean
15.Statistical functions: Standard Deviation
16.Statistical functions: Standard Deviation
17.The Method converts the temperature in Fahrenheit to Celcius
18.The Method converts the temperature in Celcius to Fahrenheit
19.Returns the maximum value of three numbers
20.Returns the minimum value of three numbers
21.rounds val to the nearest fractional value
22.Combines two input numbers in some proportion.
23.Normalise Angle
24.wraps the mod result to avoid negative results.
25.Calculates the floor of the log, base 2, of 'x'.
26.Calculates the Least Common Multiple (LCM) of two strictly positive integer numbers.
27.Get Prime, Is prime
28.Same as System.Math.Acos but if angle is out of range, the result is clamped.
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.