English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di Base Java

Java Controllo dei flussi

Java Array

Java Orientazione agli oggetti (I)

Java Orientazione agli oggetti (II)

Java Orientazione agli oggetti (III)

Gestione delle Eccezioni Java

Java Lista

Java Queue (Coda)

Java Map Collection

Java Set Collection

Java Input/Output (I/O)

Java Reader/Writer

Altri argomenti Java

Java programma per trovare il maggiore comune divisore di due numeri

Java Esempi completi

In questo programma, imparerai a trovare il maggiore comune divisore (GCD) di due numeri in un programma Java. Questo viene fatto utilizzando cicli for e while con la的帮助 di if else.

Il maggiore comune divisore (HCF o GCD) di due numeri interi è il maggiore intero che può dividere i due numeri senza lasciare residui.

Esempio 1: Utilizzare il ciclo for e if per trovare il maggiore comune divisore di due numeri

public class GCD {
    public static void main(String[] args) {
        int n1 = 81, n2 = 153, gcd = 1;
        for(int i = 1; i <= n1 && i <= n2; ++i)
        {
            // Verifica se i è un divisore dei due numeri interi
            if(n1 % i == 0 && n2 % i == 0)
                gcd = i;
        }
        System.out.printf("%d e %d il maggiore comune divisore è %d", n1, n2, gcd);
    }
}

Quando si esegue questo programma, l'output è:

Il maggiore comune divisore di 81 e 153 è 9

In questo caso, i due numeri che devono trovare il maggiore comune divisore vengono memorizzati rispettivamente in n1 e n2.

Poi, esegui un ciclo for fino a quando i è minore di n1 e n2. In questo modo, itera da 1 a tutti i numeri minori dei due numeri per trovare il maggiore comune divisore.

Se n1 e n2 possono essere divisibili da i, imposta gcd come numero. Continua fino a trovare il numero massimo (GCD) che può dividere n1 e n2 senza lasciare residui.

Possiamo anche risolvere questo problema utilizzando un ciclo while, come segue:

Esempio 2: Utilizzare il ciclo while e if else per trovare il GCD di due numeri

public class GCD {
    public static void main(String[] args) {
        int n1 = 81, n2 = 153;
        while(n1 != n2)
        {
            if(n1 > n2)
                n1 -= n2;
            else
                n2 -= n1;
        }
        System.out.println("G.C.D = " + n1);
    }
}

Quando si esegue questo programma, l'output è:

G.C.D = 9

Questo è un metodo migliore per trovare il GCD. In questo metodo, si sottrae il numero più piccolo dal numero più grande e poi si assegna il risultato alla variabile che contiene il numero più grande. Questo processo continua fino a quando n1 e n2 sono uguali.

Solo quando l'utente inserisce un numero intero positivo, i due programmi sopra possono funzionare come previsto. Questo è una modifica dell'ultimo esempio, che può trovare il GCD di numeri interi positivi e negativi.

Esempio 3: GCD di numeri positivi e negativi

public class GCD {
    public static void main(String[] args) {
        int n1 = 81, n2 = -153;
        n1 = (n1 > 0) ? n1 : -n1;
        n2 = (n2 > 0) ? n2 : -n2;
        while(n1 != n2)
        {
            if(n1 > n2)
                n1 -= n2;
            else
                n2 -= n1;
        }
        System.out.println("G.C.D = " + n1);
    }
}

Quando si esegue questo programma, l'output è:

G.C.D = 9

Java Esempi completi