Leetcode Note: Go - Ugly Number

Ugly Number - LeetCode
https://leetcode.com/problems/ugly-number/

  • Go 言語で取り組んだメモ

所感

  • ugly number とは素因数が 2, 3, 5 のみの整数
    • prime factor: 素因数
  • これを判定して ugly number なら true を返す関数を実装する

回答

My Python and Go Solution - LeetCode Discuss
https://leetcode.com/problems/ugly-number/discuss/971510/My-Python-and-Go-Solution

func isUgly(n int) bool {
    if n <= 0 {
        return false
    }

    for n != 1 {
        if n % 2 == 0 {
            n /= 2
        } else if n % 3 == 0 {
            n /= 3
        } else if n % 5 == 0 {
            n /= 5
        } else {
            return false
        }
    }

    return true
}
  • n が 1 以外ならループを回す
    • 2, 3, 5 で余り無しの除算できるのであれば、できるだけやる
    • 除算が出来なければ Ugly Number では無いので return false
  • 除算が出来てループを抜けたら 2, 3, 5 で除算しきれたということなので Ugly Number と判定して return true