zoukankan      html  css  js  c++  java
  • 最小公倍数

    #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表示)?

  • 相关阅读:
    渣渣的python的上路
    【tyvj 2038】诡异的数学题
    codeforces_733_A
    NOIP2011 选择客栈
    NOIP 2012 同余方程
    灵渊(seals.cpp/c/pas)
    NOIP 2012 开车旅行
    Mybatis初步详细配置
    SpringMVC之编程式校验
    Spring整合MyBaytis
  • 原文地址:https://www.cnblogs.com/gti2baby/p/10442410.html
Copyright © 2011-2022 走看看