1 条题解
-
0
C :
#include<stdio.h> int hcf(int a,int b){ int r; int temp; if(a<b){ temp=a; a=b; b=temp; } while((r=a%b)!=0){ a=b; b=r; } return b; } int lcd(int a,int b,int r){ return a*b/r; } int main(){ int a,b,r,h; scanf("%d%d",&a,&b); r=hcf(a,b); h=lcd(a,b,r); printf("%d %d\n",r,h); }
C++ :
#include <stdio.h> #include <math.h> int main() { int m, n, t, a, b; scanf("%d %d", &m, &n); a = m; b = n; /* 比较m和n的大小,通过交换保证m <= n */ if (m > n) { t = m; m = n; n = t; } /* 进行欧几里得辗转相除法求出最大公约数,并保存在n中 */ while (m != 0) { t = m; m = n % m; n = t; } printf("%d %d\n", n, a / n * b); return 0; }
Pascal :
var m,n,a,b,r,i:int64; begin readln(m,n); a:=m; b:=n; r:=a mod b; while r<>0 do begin a:=b;b:=r; r:=a mod b; end; i:=m*n div b; writeln(b,' ',i); end.
Java :
import java.util.*; public class Main { public static void main(String args[]) { Scanner cin = new Scanner(System.in); int a = cin.nextInt(); int b = cin.nextInt(); int m = Math.max(a, b); int n = Math.min(a, b); int temp,gcd,lcm; if(a<b){ temp = a; a = b; b = temp; } do{ temp = a%b; a = b; b = temp; }while(b!=0); gcd = a; lcm = (m * n)/gcd; System.out.printf("%d %d\n",gcd,lcm); } }
Python :
def gcd(a, b): while b: a, b = b, a%b return a a,b = [int(x) for x in raw_input().split()] x = gcd(a,b) print "%d %d" %(x,a*b/x)
- 1
信息
- ID
- 1274
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者