从键盘输入两个整数a,b,用辗转相除法编程求出它们的最大公约数gys

如题所述

#include<stdio.h>
int main()
{
int a,b,t;
printf("输入a和b(空格分开):");
scanf("%d%d",&a,&b);
while(b)
{
t=a%b; a=b; b=t;
}
printf("最大公约数为:%d\n",a);
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-10
//C++

#include<iostream>
using namespace std;
int main()
{
int m,n;
cin>>m>>n
//确保m是大数

if(m<n)
{
int temp;
temp=m;m=n;n=temp;
}
//辗转相除求出n为最大公约数

while(m%n!=0)
{
int temp=m;
m=n;
n=temp%n;
}
cout<<n<<endl;
return 0;
}
第2个回答  2012-07-10
#include <stdio.h>
unsigned gcd ( unsigned,unsigned ) ;
int main( void )
{
unsigned m,n;
printf("请输入两个正整数:");
scanf("%u%u",&m,&n);
printf("%u与%u的最大公约数为:%u\n",m,n,gcd ( m,n ) );
return 0;
}
/* 功能:返回正整数m和n的最大公约数*/
unsigned gcd ( unsigned m,unsigned n )
{
if ( m % n == 0)
{
return n;
}
else
{
return gcd ( n,m % n) ;
}
}

这个百度里面直接有 好吧
http://baike.baidu.com/view/255668.htm
第3个回答  2012-07-10
自己看书吧~~

编程一个C语言程序,输入两个数,采用辗转相除法来计算最大公约数
while(b!=0)\/\/当其中一个数为0,另一个数就是两数的最大公约数 { r=a%b;a=b;b=r;} printf("最大公约数%d\\n",a);system("pause");}

vb编程实现用辗转相除法求两个数a和b的最大公约数
设两数为a、b(b<a),用gcd(a,b)表示a,b的最大公约数,r=a mod b 为a除以b以后的余数,辗转相除法即是要证明gcd(a,b)=gcd(b,r)。第一步:令c=gcd(a,b),则设a=mc,b=nc 第二步:根据前提可知r =a-kb=mc-knc=(m-kn)c 第三步:根据第二步结果可知c也是r的因数 第四...

c语言最大公约数最小公倍数
c语言最大公约数最小公倍数如下:从键盘输入两个正整数a和b,求其最大公约数和最小公倍数。算法思想:利用格式输入语句将输入的两个数分别赋给a和b,然后判断a和b的关系,如果a小于b,则利用中间变量t将其互换。再利用辗转相除法求出最大公约数,进而求出最小公倍数。最后用格式输出语句将其输...

用JAVA程序写出:接收用户从键盘上输入的两个整数,求两个数的最大公约...
import java.util.Scanner;public class gys { \/\/最大公约数,用辗转相除法 public int gcd(int a,int b){ int c;if(a==b){ return a;} if(a<b){ int temp;temp=a;a=b;b=temp;} while((c=a%b)!=0){ a=b;b=c;} return b;} \/\/最小公倍数=两数之积\/最大公约数 int...

c语言辗转相除法求最大公约数和最小公倍数
c语言辗转相除法求最大公约数和最小公倍数的方法如下:一、算法思想 利用格式输入语句将输入的两个数分别赋给a和b,然后判断a和b的关系,如果a小于b,则利用中间变量t将其互换。再利用辗转相除法求出最大公约数,进而求出最小公倍数。最后用格式输出语句将其输出。二、名词解释 1、最小公倍数:...

通过程序设计求解两个整数的最大公约数
通过程序设计求解两个整数的最大公约数如下:1、辗转相除法 两整数a和b:a%b得余数c。若c=0,则b即为两数的最大公约数,结束。若c≠0,则a=b,b=c,再回去执行。2、相减法 两整数a和b:若a>b,则a=a-b。若a<b,则b=b-a。若a=b,则a(或b)即为两数的最大公约数,结束。若...

用辗转相除法能够求得两个整数的最大公约数
辗转相除法的步骤如下:用较大的数除以较小的数,得到余数。然后用较小的数和这个余数作为新的两个数,重复步骤1,直到余数为0。此时的除数就是这两个数的最大公约数。用数学公式,我们可以表示为:gcd(a,b)=gcd(b,a mod b)。现在我们用代码来实现这个算法。给定的两个整数是:48和36。

输入两个正整数辗转相除法计算并输出他们最大公约数,借助最大公约数,计...
include <stdio.h> int gcd(int a,int b);\/\/最小公约数int lcd(int a,int b);\/\/最小公倍数int main(){int a,b,c,g;printf("输入两个整数:"); scanf("%d %d",&a,&b); if(a!=0&&b!=0) { c=gcd(a,b);g=lcd(a,b);printf("最大公约数:%d\\n",c);printf("最小...

辗转相除法求最大公约数c语言代码
辗转相除法求最大公约数c语言代码主要功能是通过辗转相除法求出输入的两个整数的最大公约数。以下是代码的详细解释:1、定义了一个名为gcd的函数,它接受两个整数参数a和 b。这个函数将用辗转相除法计算a和 b的最大公约数。2、在函数体中,首先检查b是否为0。如果是,那么最大公约数就是a。这是...

c语言编程,利用辗转相除法求公约数
辗转相除法, 又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公因子的算法。其原理如下:设两数为a、b(b<a),用gcd(a,b)表示a,b的最大公约数,r=a (mod b) 为a除以b以后的余数,k为a除以b的商,即a÷b=k...r。辗转相除法即是要证明gcd(a,b)=gcd(b,r)。第一步...

相似回答