[263] Ugly number

来源:互联网 发布:狗语翻译器软件 编辑:程序博客网 时间:2024/05/17 22:10

1. 题目描述

Write a program to check whether a given number is an ugly number.
Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.
For example, 6, 8 are ugly while 14 is not ugly since it includes another prime factor 7.
Note that 1 is typically treated as an ugly number.

Ugly number代表能且只能被2,3,5整除的正整数,也就是说这个数是任一个2,3,5相乘得到的结果。

2. 解决方案

根据题目描述可以看出只要将这个数一直对2,3,5三个数做除法直到不能整除时考察结果是否为1即可,下面给出实现。

3. Code

class Solution {public:    bool isUgly(int num) {        if(num <= 0)  // 判定是否满足正整数            return false;        else        {            bool flag = false;            // 使num一直对2,3,5做除法直到无法整除            do            {                flag = false;                if(num%2 == 0){  // num整除2                    num/=2;                    flag = true;                }                if(num%3 == 0){  // num整除3                    num/=3;                    flag = true;                }                if(num%5 == 0){  // num整除5                    num/=5;                    flag = true;                }            }while(flag);            if(num == 1)  // 若能完全被2,3,5整出则结果为1                return true;            return false;        }    }};
0 0