N

(Leet Code c++)Ugly Number 본문

Leet Code 알고리즘

(Leet Code c++)Ugly Number

naeunchan 2021. 7. 29. 15:48
728x90
반응형

263. Ugly Number

 

An ugly number is a positive integer whose prime factors are limited to 2, 3, and 5.

Given an integer n, return true if n is an ugly number.

 

Example 1:

Input: n = 6 Output: true Explanation: 6 = 2 × 3

Example 2:

Input: n = 8 Output: true Explanation: 8 = 2 × 2 × 2

Example 3:

Input: n = 14 Output: false Explanation: 14 is not ugly since it includes the prime factor 7.

Example 4:

Input: n = 1 Output: true Explanation: 1 has no prime factors, therefore all of its prime factors are limited to 2, 3, and 5.

 

Constraints:

  • -231 <= n <= 231 - 1

주어진 n를 소인수분해 했을 때 2, 3, 5만 가졌는지 확인하는 문제.

 

우선 0 이하인 수는 바로 false를 리턴.

 

n이 1 이상이라면 2, 3, 5로 나눴을 때 나머지가 0일 때까지 소인수분해를 해주도록 한다.

마지막 남은 n이 1이면 true를 리턴!

아니라면 false를 리턴!

class Solution {
public:
    bool isUgly(int n) {
        if(n >= 1){
            while(n % 2 == 0){
                n /= 2;
            }
            
            while(n % 3 == 0){
                n /= 3;
            }
            
            while(n % 5 == 0){
                n /= 5;
            }
            
            return n == 1 ? true : false;
        }
        
        return false;
    }
};
728x90
반응형

'Leet Code 알고리즘' 카테고리의 다른 글

(Leet Code c++)First Bad Version  (0) 2021.07.30
(Leet Code c++)Missing Number  (0) 2021.07.30
(Leet Code c++)Add Digits  (0) 2021.07.29
(Leet Code c++)Binary Tree Paths  (0) 2021.07.29
(Leet Code c++)Valid Anagram  (0) 2021.07.28