Here you can find the source of gcd(long[] array)
Parameter | Description |
---|---|
array | a parameter |
public static long gcd(long[] array)
//package com.java2s; /*/*from w w w. j a v a 2 s . c o m*/ Copyright 2008, CCTC - Computer Science and Technology Center IBB-DEB - Institute for Biotechnology and Bioengineering - Department of Biological Engineering University of Minho This is free software: you can redistribute it and/or modify it under the terms of the GNU Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Public License for more details. You should have received a copy of the GNU Public License along with this code. If not, see <http://www.gnu.org/licenses/>. Created inside the SysBio Research Group (http://sysbio.di.uminho.pt) University of Minho */ import java.util.Arrays; public class Main { /** * Greatest Common Divisor according to Euclid's algorithm * * @param array * @return */ public static long gcd(long[] array) { // local vars int listSize = array.length; long a, b, gcd1; long ONE = (long) 1; long[] arrayTmp = array.clone(); Arrays.sort(arrayTmp); if (listSize == 0 || arrayTmp[listSize - 1] == 0) { return (ONE); } a = arrayTmp[0]; gcd1 = a; for (int i = 1; i < listSize; i++) { if (gcd1 == 1) { break; } gcd1 = a; a = arrayTmp[i]; b = gcd1; while (b != 0) { gcd1 = b; b = a % gcd1; a = gcd1; } // System.out.println(gcd1); } return (gcd1); } }