最小公倍数

#include<stdio.h>
int gcd(long long n,long long m)
{
    return m ? gcd(m,n%m) : n;
}
int main()
{
    long long n,m;
    while(scanf("%lld %lld",&n,&m)!=EOF)
    {
        printf("%lld
",n*m/gcd(n,m));
    }
    return 0;
}

有两种方法
1.让大的那个数*1, *2,*3,*4 一直乘到可以被另一个数整除为止(这个貌似叫累加法?忘了)
比如 2 5
第一步:ans=5*1 不行 第二步 ans=5*2 行了
从小数开始也可以 不过会影响效率(要多乘几次)
2.根据唯一分解定理 一个数最小公倍数*最大公约数=两数乘积
所以用欧几里得算法求出最大公约数 用两数乘积除一下 就可以了

本题使用的是第二种方法:最小公倍数*最大公约数=两数乘积

具体的资料如下:https://blog.csdn.net/deepinc/article/details/79587878

题目如下:  两仪剑法是武当派武功的高级功夫,且必须2个人配合使用威力才大。同时该剑法招数变化太快、太多。设武当弟子甲招数变化周期为M,武当弟子乙招数变化周期为N,两弟子同时使用该剑法,当2人恰好同时达到招数变化周期结束时,威力最大,此时能将邪教妖人置于死地。请你计算威力最大时,每人用了多少招(用t表示)?

原文地址:https://www.cnblogs.com/gti2baby/p/10442410.html