C3-3 丑数 (100/100 分数)
题目描述
只包含因子2,3,5的正整数被称作丑数,比如4,10,12都是丑数,而7,23,111则不是丑数,另外1也不是丑数。请编写一个函数,输入一个整数n,能够判断该整数是否为丑数,如果是,则输出True,否则输出False。
输入描述
每行输入一个正整数 n
1 <= n<= 1000000
输出描述
对于每一行输入,输出其是否为丑数,是则输出True,否则输出False
样例输入
4
7
12
样例输出
True
False
True
#include <iostream>
using namespace std;
bool ugly_num(int n){
if(n==1)
return false;
while(1){
//如果该数的因子有2,则一直除以2
while(n%2==0)
n /= 2;
break;
}
while(1){
//如果该数的因子有3,则一直除以3
while(n%3==0)
n /= 3;
break;
}
while(1){
//如果该数的因子有5,则一直除以5
while(n%5==0)
n /= 5;
break;
}
//最后判断能否除尽
if(n==1)
return true;
else
return false;
}
int main(){
int n;
cin>>n;
bool res = ugly_num(n);
if(res==1)
cout << "True" << endl;
else
cout << "False" << endl;
return 0;
}