1431 - C语言-公约公倍2

通过次数

0

提交次数

0

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

写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。

题目输入

两个数

题目输出

最大公约数 最小公倍数

输入/输出样例

输入格式

6 15

输出格式

3 30

C语言解答

int gy(int n,int m)
{
   int tem;
   while(m)
   {
     tem=m;
     m=n%m;
	 n=tem;
   }
 return n;
}
int gg(int n,int m)
{
   return m/gy(n,m)*n;
}
int main(int argc, char* argv[])
{
	int a,b;
	while(~scanf("%d%d",&a,&b))
	{
	  if(a<b)
		  printf("%d %d\n",gy(b,a),gg(b,a));
       else
		  printf("%d %d\n",gy(a,b),gg(a,b));
	}
	return 0;
}

C++解答

#include <iostream>
using namespace std;
int gcd(int x,int y)
{
	return y?gcd(y,x%y):x;
}
int lcm(int x,int y)
{
	return x*y/gcd(x,y);
}
int main()
{
	int x,y;
	cin>>x>>y;
	cout<<gcd(x,y)<<" "<<lcm(x,y); 
	return 0;
}

Java解答

import java.util.Scanner;


public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		System.out.printf("%d %d",gcd(a,b),a*b/gcd(a,b));
	}
	static int gcd(int a,int b) {
		return b==0?a:gcd(b,a%b);
	}
}

Python解答

# coding=utf-8
def max_g(x,y):
    if x>y:
        min_num=y
    else:
        min_num=x
    for i in range(1,min_num+1):
        if x%i==0 and y%i==0:
           g=i
    return g
def min_g(x,y):
    if x>y:
      max_num=x
    else:
      max_num=y
    while True:
      if max_num%x==0 and max_num%y==0:
          return max_num
      else:
          max_num+=1


import sys
if __name__ == '__main__':
    x,y=map(int,sys.stdin.readline().strip().split())
    print(max_g(x,y),min_g(x,y))