关于求最大公约数和最小公倍数的的算法

来源:互联网 发布:淘宝双11营业额2017 编辑:程序博客网 时间:2024/05/18 02:23
#include<cstdio>int main(){  int a,b,num1,num2,temp;  printf("请输入两个整数:\n");  scanf("%d  %d",&num1,&num2);  if(num1<num2)/*交换两个数,使大数放在num1上*/  {    temp=num1;    num1=num2;    num2=temp;  }  a=num1;b=num2;  while(b!=0)/*利用辗除法,直到b为0为止*/  {    temp=a%b;    a=b;    b=temp;  }  printf("最大公约数:%d\n",a);  printf("最小公倍数:%d\n",num1*num2/a);  return 0;}

#include<cstdio>int num1,num2;void swap(int &a,int &b){    if(a<b)    {        int temp = b;        b = a;        a = temp;    }}int gcd(int a,int b)//greatest common divisor 简称gcd{    return (b==0)?a:gcd(b,a%b);}int lcm()//Least Common Multiple,简称lcm{    return num1*num2/gcd(num1,num2);}int main(){    printf("请输入两个整数:\n");    scanf("%d%d",&num1,&num2);    if(num1<num2)    swap(num1,num2);    printf("最大公约数是:%d\n",gcd(num1,num2));    printf("最大公约数是:%d\n",lcm());    return 0;}
#include<cstdio>int num1,num2;void swap(int &a,int &b){    if(a<b)    {        int temp = b;        b = a;        a = temp;    }}int gcd(int a,int b)//greatest common divisor 简称gcd{    return (b==0)?a:gcd(b,a%b);}int lcm()//Least Common Multiple,简称lcm{    return num1*num2/gcd(num1,num2);}int main(){    printf("请输入两个整数:\n");    scanf("%d%d",&num1,&num2);    if(num1<num2)    swap(num1,num2);    printf("最大公约数是:%d\n",gcd(num1,num2));    printf("最大公约数是:%d\n",lcm());    return 0;}