1431 - C语言-公约公倍2
时间限制 : 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))