您的位置:首页 > 其它

小白笔记-------------------leetcode(263. Ugly Number )

2016-11-19 20:36 435 查看
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.

先求出所有质因子然后判断,结果程序超时了。。。。、

bool isUgly(int num) {
bool flag = true;
if(num < 1){
flag = false;
}
int i,f[num];
for(i = 0 ;i < num;i++){
f[i] = 0;
}
for(i = 2; i*i < num;i++){
if( num % i == 0){
f[i]++;
}
while( num % i == 0){
num = num/i;
}
}
for(i = 2; i < num;i++){
if(f[i] == 1 && (i != 2 || i != 3 || i != 5) ){
flag = false;
}
}

return flag;
}


采用简单的思路对这个数一直用2,3,5来整除最终能得到1则一定是丑数,简单可行

bool isUgly(int num) {
if(num < 1){
return false;
}
while(num % 2 == 0){
num = num / 2;
}
while(num % 3 == 0){
num = num / 3;
}
while(num % 5 == 0){
num = num / 5;
}
return num == 1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: