[Swift]白準2609-最大公倍数と最小公倍数

1276 ワード


質問リンク
ユークリッド湖の作り方が分からないからです.
https://tech.lonpeach.com/2017/11/12/Euclidean-algorithm/
こちらの説明を見ました!

最大公約数を求める


まず数字a,b(この場合a>b)がある
aをbで割った場合
  • の残りのrが0である場合、bはaおよびbの最大公約数である.
  • 残りのrが0でない場合、bはrで除算される.
  • bがrで除算され、残りのr 2が0である場合、rはaおよびbの最大公約数である.
  • bをrで割った場合、残りのr 2は0:rでr 2で割ったものではない.
  • 残りのプロシージャが0になるまで、次のプロシージャを繰り返します.
    コードとして記述すると、
    
    var max = nums.max()!
    var min = nums.min()!
    var r = max%min
    
    while r > 0 {
        max = min
        min = r
        r = max%min
    }
    
    以下のとおりです.

    最小公倍数を求める


    最小公倍数は最大公倍数で簡単に知ることができる.
    2つの数a,bがあり、最大公約数がGの場合
    a=Gx,b=Gy.
    aとbの最小公倍数はa*b/gである

    最終コード

    
    import Foundation
    
    let nums = readLine()!.split(separator: " ").map{Int(String($0))!}
    
    var max = nums.max()!
    var min = nums.min()!
    var r = max%min
    
    while r > 0 {
        max = min
        min = r
        r = max%min
    }
    
    print(min)
    print(nums[0]*nums[1]/min)