C语言求最大公约数和最小公倍数
C语言求最大公约数和最小公倍数
方法一: 辗转相除法
有两整数a和b:
① a%b得余数c
② 若c=0,则b即为两数的最大公约数
③ 若c≠0,则a=b,b=c,再回去执行①
例如求27和15的最大公约数过程为:
27÷15 余12 15÷12余3 12÷3余0 因此,3即为最大公约数
#include
int main()
{
int n,m;
while(scanf("%d %d",&n,&m)!=EOF)
{
int c = n;
while(m != 0)
\{
c = n%m;;
n = m;
m = c;
\}
printf("%d\\n",n);
\}
}
方法二: 调用函数
#include
using namespace std;
int main()
{
int N, M ,yueshu,gongbeishu;
while(~scanf(“%d %d”, &N, &M))
{
yueshu=__gcd(N, M);
gongbeishu=(N*M)/yueshu;
printf(“%d %d\n”, yueshu,gongbeishu);
}
return 0;
}
还没有评论,来说两句吧...