如何求两个数的最大公约数?求大神指导!!![em06]
如何求两个数的最大公约数?求大神指导!!!
#include <stdio.h> int main() { int a, b, n1, n2, temp; scanf("%d%d", &n1, &n2); if(n1 < n2) { temp = n1; n1 = n2; n2 = temp; } a = n1; b = n2; while(b != 0) { temp = a % b; a = b; b = temp; } printf("%d %d\n", a, n1 * n2 / a); return 0; }2个都有了,自己看看吧....
/* * 从键盘上输入两个正整数,求他们的最大公约数 */ 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楼的代码后 编的