6-1 sdut-fun-1 最大公约数与最小公倍数 (10 分)
输入两个正整数,求它们的最大公约数与最小公倍数。
输入:两个正整数,两个整数之间用空格分开。数据保证在 int 范围内。
输出:第一行输出最大公约数;第二行输出最小公倍数。答案保证在 int 范围内。
函数接口定义:
public static int gcd ( int m, int n ) //求最大公约数
{
return 0;
}
public static int lcm ( int m, int n ) //求最小公倍数
{
return 0;
}
其中,参数m和n分别表示2个待求最大公约数的数值。
裁判测试程序样例:
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int a = reader.nextInt();
int b = reader.nextInt();
System.out.println(gcd(a,b));
System.out.println(lcm(a,b));
reader.close();
}
/* 请在这里填写答案 */
}
输入样例1:
18 12
结尾无空行
输出样例1:
6
36
结尾无空行
输入样例2:
2 18
结尾无空行
输出样例2:
2
18
结尾无空行
public static int gcd ( int m, int n ) //求最大公约数
{
int c=m%n;
while(c!=0)
{
m=n;
n=c;
c=m%n;
}
return n;//返回的是最小值,不是中间值;
}
public static int lcm ( int m, int n ) //求最小公倍数
{
if(m<n) /*比较大小,使得m中存储大数,n中存储小数*/
{
int temp = m;
m = n;
n = temp;
}
int c = 0;
for(int i=m; i>0; i++) /*从大数开始寻找满足条件的自然数*/
if(i%m==0 && i%n==0)
{/*输出满足条件的自然数并结束循环*/
c=i;
break;
}
return c;
}