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.Date Time
8.Design Patterns
9.Development Class
10.Event
11.File Stream
12.Generics
13.GUI Windows Form
14.Internationalization I18N
15.Language Basics
16.LINQ
17.Network
18.Office
19.Reflection
20.Regular Expressions
21.Security
22.Services Event
23.Thread
24.Web Services
25.Windows
26.Windows Presentation Foundation
27.XML
28.XML LINQ
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.The Method converts the temperature in Fahrenheit to Celcius
17.The Method converts the temperature in Celcius to Fahrenheit
18.Returns the maximum value of three numbers
19.Returns the minimum value of three numbers
20.rounds val to the nearest fractional value
21.Combines two input numbers in some proportion.
22.Normalise Angle
23.wraps the mod result to avoid negative results.
24.Calculates the floor of the log, base 2, of 'x'.
25.Calculates the Least Common Multiple (LCM) of two strictly positive integer numbers.
26.Get Prime, Is prime
27.Same as System.Math.Acos but if angle is out of range, the result is clamped.
28.Math.Abs returns the absolute value of a Decimal number.
29.Math.Acos
30.Math.Asin returns the angle whose sine is the specified number.
31.Math.Atan Returns the angle whose tangent is the specified number.
32.Math.Atan2 Returns the angle whose tangent is the quotient of two specified numbers.
33.Math.BigMul Produces the full product of two 32-bit numbers.
34.Math.Ceiling Returns the smallest integral value that is greater than or equal to the specified decimal number.
35.Math.Cos Returns the cosine of the specified angle.
36.Math.Cosh returns the hyperbolic cosine
37.Math.DivRem calculates the quotient of integers and returns the remainder in an output parameter.
38.Math.E Field Represents the natural logarithmic base, specified by the constant, e.
39.Math.Exp returns e raised to the specified power.
40.Math.Floor returns the largest integer less than or equal to the specified decimal number.
41.Math.IEEERemainder returns the remainder resulting from the division
42.Math.Log Method returns the natural (base e) logarithm of a specified number.
43.Math.Log Method returns the logarithm of a specified number in a specified base.
44.Math.Log10 Method returns the base 10 logarithm of a specified number.
45.Math.Max Method returns the larger of two 8-bit unsigned integers.
46.Math.Min Method returns the smaller of two 8-bit unsigned integers.
47.Math.PI Field represents the ratio of the circumference of a circle to its diameter,
48.Math.Pow Method returns a specified number raised to the specified power.
49.Math.Round Method rounds a decimal value to the nearest integral value.
50.Math.Sign Method returns a value indicating the sign of a decimal number.
51.Math.Sinh Method returns the hyperbolic sine of the specified angle.
52.Math.Sqrt Method returns the square root of a specified number.
53.Math.Tan Method returns the tangent of the specified angle.
54.Math.Tanh Method returns the hyperbolic tangent of the specified angle.
55.Math.Truncate calculates the integral part of a specified decimal number.
56.double extension method for Radian/Degree conversion
57.Prime Number Utility
58.Fibonacci number
59.Almost equal and Epsilon
60.Is Value in the range
61.Angle Utility
62.Factorial value
63.Mean value
64.Get BMI
65.Conver Kg To Lb
66.Rational Class
67.Generic Max Min
68.Knuth shuffle
69.Calculate Distance between two points
70.Mesh Utilities
71.Generic Pair
72.Permutation demo
73.Calculate Variance
74.The normdist
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.