如何求两个数的最大公约数?求大神指导!!![em06]
如何求两个数的最大公约数?求大神指导!!!![](images/smilies/emot/em06.gif)
/* * 从键盘上输入两个正整数,求他们的最大公约数 */ import java.util.* ; public class TJ05 { public static void main(String args[]){ int m,n,a,b,i,c=1; System.out.print("请输入两个正整数:") ; Scanner scan = new Scanner(System.in) ; m=scan.nextInt() ; //接收从键盘上输入的第一个数 n=scan.nextInt() ; //接收从键盘上输入的第二个数 a=m>n?n:m ; //取两数中的最小数 b=m>n?m:n ; //取两数中的最大数 for(i=1;i<a/2;i++){ if(b%a==0){ System.out.println(m+"和"+b+"最大公约数为: "+a); System.exit(1); //退出程序 }else if(a%i==0&&b%i==0){ c=i ; //如果i能同时整除a和b,将i的值赋给c continue ; //返回下一个循环体 } } System.out.println(m+"和"+b+"最大公约数为: "+c); } }
/* *从键盘上输入两个数,求他们的最大公约数 */ public class TJ06 { public static void main(String args[]){ System.out.print("请输入两个正整数:") ; TJ06_1 tj = new TJ06_1(); tj.getInfo() ; } } import java.util.Scanner; public class TJ06_1 { public TJ06_1(){} Scanner scan = new Scanner(System.in) ; int c; int a=scan.nextInt() ; //接收送键盘上输入的第一个数 int b=scan.nextInt() ; public void getInfo(){ a=a>b?a:b ; //取两数的最大值 b=a>b?b:a ; //取两数的最小值 if(a%b==0){ c=b ; System.out.println(a+"和"+b+"的最大公约数为: "+c) ; }else{ b=a%b ; //将a对b取摸得值赋给b getInfo() ; } } } 这是看了5楼的代码后 编的