1661 - 最小公倍数

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

给定两个正整数,计算这两个数的最小公倍数。

题目输入

输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数。

题目输出

对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。

输入/输出样例

输入格式

20 15

输出格式

60

C语言解答

#include<stdio.h>
int gcd(int x, int y){
  if(x%y==0) return y;
  else return gcd(y, x%y);
}
int main(){
  int x, y, g;
  while(scanf("%d%d", &x, &y)==2){
    g=gcd(x, y);
    printf("%d\n", x*y/g);
  }
  return 0;
}

C++解答

#include<stdio.h>

int main()
{
	int a,b,k,t,i;
	while(scanf("%d%d",&a,&b)!=EOF)
	{
		if(a<b)
		{
			k=a;
			a=b;
			b=k;
		}
		t=a*b;
		while(b!=0)
		{
			i=a%b;
			a=b;
			b=i;
		}
		printf("%d\n",t/a);
	}
	return 0;
}

Java解答

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * User: Worshiper
 * Date: 13-10-28
 * Time: 下午10:52
 */
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            int a = in.nextInt();
            int b = in.nextInt();
            System.out.println(a * b / solve(a, b));
        }
    }

    private static int solve(int i, int j) {
        if (j == 0)
            return i;
        return solve(j, i % j);
    }
}