C语言编程 C Language Programming - 0016

编程题0016 (from Programming Teaching Assistant (PTA))

最大公约数和最小公倍数

本题要求两个给定正整数的最大公约数和最小公倍数。

输入格式:
输入在一行中给出两个正整数 M和N (≤1000)。

输出格式:
在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。

输入样例:

511 292

输出样例:

73 2044

Answer:

#include 

int main(){
  
  int m = 0, n = 0, mul = 0;;
  
  scanf("%d %d", &m, &n);
  
  mul = m*n;
  
  if(m < n) {
    m = m+n;
    n = m-n;
    m = m-n;
  }
  
  while((m!=0)&&(n!=0)){
    m = m%n;
    m = m+n;
    n = m-n;
    m = m-n;
  }
  
  printf("%d %d", m, mul/m);
  
  return 0;
}

你可能感兴趣的:(C语言编程 C Language Programming - 0016)