题目:
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:
1
is typically treated as an ugly number.- Input is within the 32-bit signed integer range.
翻译:
写下一个程序来判断一个给定的数字是否为丑数。
丑数是因数只有 2, 3, 5的正数。举例,6, 8 是丑数而 14不是丑数因为它包含其它因数 7。
思路:
不断判断是否只能被2,3,5整除,若能,则为丑数,返回1;否则,不为丑数,返回0。
C++代码(Visual Studio 2017):
#include "stdafx.h"
#include <iostream>
using namespace std;
class Solution {
public:
bool isUgly(int num) {
while (num >= 2) {
if (num % 2 == 0)
num = num / 2;
else if (num % 3 == 0)
num = num / 3;
else if (num % 5 == 0)
num = num / 5;
else
return false;
}
if (num == 1)
return true;
else return false;
}
};
int main()
{
Solution s;
int num = 33;
bool result;
result = s.isUgly(num);
cout << result;
return 0;
}