A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

lianfake

初级黑马

  • 黑马币:0

  • 帖子:9

  • 精华:0

本帖最后由 杨兴庭 于 2013-7-13 15:20 编辑

怎么在控制台上输入两个数并求出最大公约数和最小公倍数

评分

参与人数 1黑马币 +2 收起 理由
杜光 + 2 赞一个!

查看全部评分

4 个回复

倒序浏览
自己给自己顶一个
回复 使用道具 举报
本帖最后由 camml 于 2013-7-11 11:08 编辑
  1. import java.util.*;
  2. class Demo{
  3.         public static void main(String args[]){
  4.                 //在控制台上输入两个不为0整数
  5.                 int m,n;
  6.                 Scanner s=new Scanner(System.in);
  7.                 System.out.println("请输入第一个数字(整数且不为0) : ");
  8.                 m=s.nextInt();
  9.                 System.out.println("请输入第二个数字(整数且不为0) : ");
  10.                 n=s.nextInt();
  11.                
  12.                 int total, r;
  13.                 total = m*n;
  14.                 do {
  15.                         //循环保证m的值是最大的那个值
  16.                         if(m<n)
  17.                           {
  18.                                 int t = m;
  19.                                      m = n;
  20.                                      n = t;
  21.                            }
  22.                 r=m%n;
  23.                 m=n;
  24.                 n=r;
  25.                 }while(r!=0);
  26.         System.out.println("最大公约数是:"+m);
  27.         System.out.println("最小公倍数是:"+total/m);
  28.         }
  29. }</P>
复制代码
希望对楼主有帮助,另外这个帖子跟你问的差不多,楼主可以看一下
http://bbs.itheima.com/thread-59333-1-1.html

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

回复 使用道具 举报
import java.util.InputMismatchException;
import java.util.Scanner;

public class Demo {
        /**
         * 球最大公约数
         *
         * @param a
         * @param b
         * @return
         */
        public static int gongyueshu(int a, int b) {
                if (a <= 0 && b <= 0) {
                        System.out.println("输入的数有小于等于0的,不考虑公约数 用返回值——1来表示");
                        return -1;
                } else {
                        int r = a > b ? b : a;
                        int y = 0;
                        for (int i = r; r >= 1; i--) {
                                if (a % i == 0 && b % i == 0) {
                                        y = i;
                                        break;
                                }
                        }
                        return y;
                }

        }
/**
* 求最小公倍数
* @param a
* @param b
* @return
*/
        public static int beishu(int a, int b) {
                if (a <= 0 && b <= 0) {
                        System.out.println("输入的数有小于等于0的,不考虑公倍数用返回值——1来表示");
                        return -1;
                } else {
                        int r = a > b ? a : b;
                        int y=-1;
                        for (int i = r; i <= a * b; i++) {
                      if(i%a==0 && i%b==0){
                              y=i;
                              break;
                      }
                        }

                        return y;
                }
        }

        public static void main(String[] agrs) {
                Scanner in = new Scanner(System.in);
                System.out.println("请输入两个整数:");
                try{
                        int a=in.nextInt();
                        int b=in.nextInt();
                        int yue=gongyueshu(a, b);
                        int bei=beishu(a, b);
                        if(yue!=-1 && bei!=-1){
                                System.out.println(a+"和"+b+"的最大公约数"+yue);
                                System.out.println(a+"和"+b+"的最小公倍数"+bei);
                        }else{
                                System.out.println("输入的整数有小于等于零的!");
                        }
                       
                }catch(InputMismatchException e ){
                        System.out.println("输入的不是整数");
                }catch(Exception e){
                        e.printStackTrace();
                }
               
               
        }
}
结果;
请输入两个整数:
15
20
15和20的最大公约数5
15和20的最小公倍数60

希望对你有帮助!

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
用辗转相除法咯!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马