Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*
 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);
    }
}