MUKER_DEV with iOS

swift / μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•μœΌλ‘œ μ΅œλŒ€ κ³΅μ•½μˆ˜ κ΅¬ν•˜κΈ° λ³Έλ¬Έ

πŸ€– μ•Œκ³ λ¦¬μ¦˜

swift / μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•μœΌλ‘œ μ΅œλŒ€ κ³΅μ•½μˆ˜ κ΅¬ν•˜κΈ°

MUKER 2022. 6. 20. 12:50
μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œμ—μ„œ μ΅œλŒ€ κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•˜λŠ” λ¬Έμ œλ“€μ΄ λ‚˜μ˜€λŠ”λ°μš”
κ°„λ‹¨ν•˜κ²Œ μ΅œλŒ€ κ³΅μ•½μˆ˜λ₯Ό ꡬ할 수 μžˆλŠ” μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²• μ΄μš©ν•΄ μ‰½κ²Œ ꡬ할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•μ΄λž€?

큰 μˆ˜μ—μ„œ μž‘μ€ 수λ₯Ό λ‚˜λˆ„μ–΄ λ‚˜λ¨Έμ§€λ₯Ό κ΅¬ν•˜κ³  λ‚˜λˆˆ λͺ«κ³Ό λ‚˜λ¨Έμ§€λ₯Ό 또 λ‚˜λˆ„μ–΄ λ‚˜λ¨Έμ§€κ°€ 0이 될 λ•ŒκΉŒμ§€ λ°˜λ³΅ν•˜λŠ” μ›λ¦¬μž…λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ 34와 26μ΄λΌλŠ” 숫자의 μ΅œλŒ€ κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

34 / 26 = 1 (λ‚˜λ¨Έμ§€ 8)
26 / 8 = 3 (λ‚˜λ¨Έμ§€ 2)
8 / 2 = 4 (λ‚˜λ¨Έμ§€ 0)

 

λ‚˜λ¨Έμ§€κ°€ 0이 됐고 λ§ˆμ§€λ§‰ λ‚˜λˆˆ 값은 2μž…λ‹ˆλ‹€.

λ§ˆμ§€λ§‰ λ‚˜λˆˆ 값이 μ΅œλŒ€κ³΅μ•½μˆ˜κ°€ 되기 λ•Œλ¬Έμ—

(gcd) = 4 κ°€ λ©λ‹ˆλ‹€.

gcdλŠ” μ΅œλŒ€κ³΅μ•½μˆ˜μ˜ μ•½μžλ‘œ μ΅œλŒ€κ³΅μ•½μˆ˜(Greatest Common Divisor, GCD) μž…λ‹ˆλ‹€.

μ½”λ“œλ‘œ μž‘μ„±ν•˜κ²Œ 되면

 

func gcd(_ a: Int, _ b: Int) -> Int {
  let r = a % b
    
  if r != 0 {
    return gcd(b, r)
  } else {
    return b
  }
}

 

이런 μ‹μœΌλ‘œ μ΅œλŒ€ κ³΅μ•½μˆ˜λ₯Ό ꡬ할 수 있게 λ©λ‹ˆλ‹€.