【第四届蓝桥杯】公约数公倍数

来源:互联网 发布:excel数据横纵坐标互换 编辑:程序博客网 时间:2024/05/17 20:30
题目:公约数公倍数

    我们经常会用到求两个整数的最大公约数和最小公倍数的功能。
    下面的程序给出了一种算法。
    函数 myfunc 接受两个正整数a,b
    经过运算后打印出 它们的最大公约数和最小公倍数。
    此时,调用 myfunc(15,20)  

将会输出:
5
60 

// 交换数值
void swap(int *a,int *b)
{
   int temp;
   temp=*a;
   *a=*b;
   *b=temp;
}

void myfunc(int a, int b)
{
   int m,n,r;  
   if(a<b) swap(&a,&b);
   m=a;n=b;r=a%b;
   while(r!=0)
   {
    a=b;b=r;
    r=a%b;
   }
   printf("%d\n",b);  // 最大公约数 
   printf("%d\n", ____________________________________);  // 最小公倍数 
}

请分析代码逻辑,并推测划线处的代码,通过网页提交。

注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!


答案:m*n/b


C++代码:

#include <stdio.h>void swap(int *a,int *b) {  int temp;  temp=*a; *a=*b;  *b=temp; }  void myfunc(int a,int b) {  int m,n,r;  if(a<b)   swap(&a,&b);  m=a;  n=b;  r=a%b;  while(r!=0) {   a=b;   b=r;   r=a%b;  }  printf("%d\n",b);//最大公约数  7printf("%d\n",m*n/b);//最小公倍数 882 }int main() {myfunc(63,98);return 0;} 

第四届蓝桥杯所有组试题与部分答案

原创粉丝点击