求两个数的最大公约数c语言怎么做用while语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求两个数的最大公约数c语言怎么做用while语句相关的知识,希望对你有一定的参考价值。

int a,b,num1,num2,temp;
printf("Input a & b:");
scanf("%d%d",&num1,&num2);
if(num1>num2) /*找出两个数中的较大值*/

temp=num1; num1=num2; num2=temp; /*交换两个整数*/

a=num1; b=num2;
while(b!=0) /*采用辗转相除法求最大公约数*/

temp=a%b;
a=b;
b=temp;

printf("The GCD of %d and %d is: %d\n",num1,num2,a); /*输出最大公约数*/
printf("The LCM of them is: %d\n",num1*num2/a); /*输出最小公倍数*/
参考技术A //①递归算法: 
int  gcd(int a, int b)

    if(a%b==0)
       return  b;
    else 
       return gcd(b,a%b);   


//②非递归算法
   int gcd(int a, int b)  

    while(a%b!=0)
    
        a=b;
        b=a%b;
    
    return b;

参考技术B #include <stdio.h>

int main(void)

int a,b,t;
scanf("%d%d",&a,&b);
while(a%b)

t=b;
b=a%b;
a=t;

printf("%d\\n",b);
return 0;

求两个数的最大公约数和最小公倍数 C语言

C程序设计第八章的第一道题目,求两个数的最大公约数和最小公倍数。
需要注意一下几点: 1.最大公约数和最小公倍数间的关系: 设两个数是a,b最大公约数是p,最小公倍数是q 那么有这样的关系:ab=pq 所以q=ab/p。
2.任意整数和0的公约数是该整数的所有约数,所以它们的最大公约数为该整数本身。
3.碾转相除法:被除数%除数=余数,如果余数不为0,就让原来的除数做为被除数,余数作为除数,
再进行运算 被除数%除数=余数,直到得到的余数为0为止,此时的除数就是最大公约数。

#include <stdio.h>
int main()
 {int hcf(int,int);
  int lcd(int,int,int); 
  int u,v,h,l;
  printf("请输入两个整数:\n");
  scanf("%d",&u);
  scanf("%d",&v);
  h=hcf(u,v);
  printf("H.C.F=%d\n",h);
  l=lcd(u,v,h);
  printf("L.C.D=%d\n",l);
  return 0;
 }

//求最大公约数

int hcf(int u,int v)
{    int temp;
    if (u<v)
     {temp=u;u=v;v=temp;}
 while (v!=0)
     //碾转相除法
     {
         temp=u%v;
         u=v;
         v=temp;}
 return(u);
}

//求最小公倍数
int lcd(int u,int v,int h)
  {
   return(u*v/h);
  }

 

以上是关于求两个数的最大公约数c语言怎么做用while语句的主要内容,如果未能解决你的问题,请参考以下文章

C语言求n个数的最小公倍数

用Lua 编写找出两个数的最大公约数,要怎么编写

用辗转相除法求2个数的最大公约数,怎么做?

C语言 求两个数的最大公约数

用python语言求两个数的最大公约数和最小公倍数

辗转相除法求最大公约数c语言代码