用辗转相除法示最大公约数和最小公倍数?(C语言)

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/07 19:20:33

用辗转相除法示最大公约数和最小公倍数?(C语言)
用辗转相除法示最大公约数和最小公倍数?(C语言)

用辗转相除法示最大公约数和最小公倍数?(C语言)
辗转相除法是求最大公约数的,不能求最小公倍数.
/*题目:输入两个正整数,求其最大公约数.*/
#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 )
{
unsigned temp;
if (m<n)
{
temp=m;
m=n;
n=temp;
}
if ( m % n == 0)
{
return n;
}
else
{
return gcd ( n,m % n) ;
}
}