当前访客身份:游客 [ 登录 | 加入开源中国 ]

代码分享

当前位置:
代码分享 » Java  » 编程基础
分享到: 
收藏 +0
0
利用很简单的循环,判断求解两个数的最大公约数与最小公倍数
标签: <无>

代码片段(1) [全屏查看所有代码]

1. [文件] Gongyueshu.java ~ 1KB     下载(9)     跳至 [1] [全屏预览]

public class Gongyueshu 
{
	public static void main(String[] args) 
	{
		//从控制台输入两个数据
		int m = Integer.parseInt(args[0]);
		int n = Integer.parseInt(args[1]);
		int y = 1 ;
		int b = 1;
		if (m > 0 && n >0)
		{
			//先判定这两个数是否为倍数关系,如果是则小数为最大公约数,大数为最小公倍数
			if (m % n == 0 || n % m  == 0)
			{
				if (m >= n)
				{
					System.out.println("最大公约数为" + n);
					System.out.println("最小公倍数为" + m);
				}
				else
				{
					System.out.println("最大公约数为" + m);
					System.out.println("最小公倍数为" + n);
				}
			}
			//从2开始循环寻找两数共同的因子,每找到一个即乘以公约数变量y与公倍数变量b
			//并把原来的两个数除以共同的因子,
			//并把i置为1(continue出来要执行for的结束语句i++,所以下一次循环i依然从2开始)下一次循环
			else
			{
				for (int i = 2; i <= m ; i ++ )
				{
					if (m % i == 0 && n % i == 0)
					{
						y *= i;
						b *= i;
						m /= i;
						n /= i;
						i = 1;
						continue;

					}
					else if(m == i && (m % i != 0 || n % i != 0))
					{
						b = b * m * n;
						System.out.println("最大公约数为" + y);
						System.out.println("最小公倍数为" + b);

					}

				}
			}
		}
	else 
	{
		System.out.println("输入错误");
	}
		
	}
}


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

开源从代码分享开始 分享代码
星曌云天的其它代码 全部(1)...