import javax.swing.JOptionPane; public class MCDricorsivo { public static int leggiIntero(String messaggio) { int n = 0; boolean erroreVerificato = false; do { try { erroreVerificato = false; n = Integer.parseInt(JOptionPane.showInputDialog(messaggio)); } catch(NumberFormatException e) { erroreVerificato = true; JOptionPane.showMessageDialog(null, "SCRIVI BENE!!!!!"); } } while(erroreVerificato); return n; } public static void main(String[] args) { int x, y, ris; x = leggiIntero("Digita un intero positivo"); y = leggiIntero("Digita un altro intero positivo"); ris=MCD(x,y); JOptionPane.showMessageDialog(null, "Il MCD tra "+x+" e "+y+" e' "+ris); System.exit(0); } public static int MCD(int a, int b) /* a e b sono positivi qualsiasi * ma il metodo MCDEuclide richiede che il primo parametro * non sia maggiore del secondo */ { a = Math.abs(a); b = Math.abs(b); if(a>=b) return MCDEuclide(a,b); else return MCDEuclide(b,a); } public static int MCDEuclide(int a, int b) /* assume a>=b */ { int resto = a%b; if (resto==0) return b; else return MCDEuclide(b, resto); } }