求两个数的最大公倍数
考完五校的第一天,在家补视频ing,简单来说的话就是给了两个数A,B
假设他们两个的最大公倍数为d,那么A=X*d,B=Y*d
gcd就是把一直gcd(B%A,A)不断更新,其中我们用最简单的情况分析
也就是说B/A=1,B%A=(Y-X)d,我们可以看到,B%A也是含有因数d
这样我们就可以把两个较大的数逐步分解为较小的问题来解决。
就说这么多了吧,才看了两个视频,加油,奥利给!
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 int gcd(int x,int y) 5 { 6 if (x==0) 7 return y; 8 else return gcd(y%x,x); 9 } 10 int main() 11 { 12 int a,b,t; 13 scanf ("%d%d",&a,&b); 14 printf ("%d",gcd(a,b)); 15 return 0; 16 }