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