最大公约数与最小公倍数
Posted qiulinzhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大公约数与最小公倍数相关的知识,希望对你有一定的参考价值。
1. 最小公倍数
a,b的最小公倍数等于 a*b/最大公约数
2. 最大公约数
2.1 辗转相除法
① a%b得到余数c
② 若c=0,则c即是最大公约数
③ 若c≠0,则 a=b,b=c,再返回①
注意:这里假设a,b都是正数,因此无需判断a,b的大小,因为当a<b时,第一轮循环后a,b就会互换。
#include<stdio.h>
using namespace std;
int main()
{
int a=0,b=0,c=0;
while(scanf("%d %d",&a,&b))
{
int m=a,n=b;
while(n!=0)
{
c=m%n;
m=n;
n=c;
}
printf("The Greatest common divisor between %d and %d is:%d
",a,b,m);
printf("The least common multiple between %d and %d is:%d
",a,b,a*b/m);
}
}
2.2 更相减损法
① 若a>b,则a=a-b;
② 若a<b,则b=b-a;
③ 若a=b,则a or b就是最大公约数
#include<stdio.h>
using namespace std;
int main()
{
int a=0,b=0;
while(scanf("%d %d",&a,&b))
{
int m=a,n=b;
while(m!=n)
{
if(m>n)
m=m-n;
else
n=n-m;
}
printf("The Greatest common divisor between %d and %d is:%d
",a,b,m);
printf("The least common multiple between %d and %d is:%d
",a,b,a*b/m);
}
}
以上
以上是关于最大公约数与最小公倍数的主要内容,如果未能解决你的问题,请参考以下文章
VB中如何求最大值和最小值,我写了下面的代码可是只能求最大值和平均值。最小值一直显示0
Java8 Stream针对List先分组再求和最大值最小值平均值等