Since we're given a fixed amount of allowed prime factors, we can simply factor them out and check if the remainder is equal to 1 - if it's greater than 1, than there were other prime factors and the number is not ugly

```
bool isUgly(int num) {
if(num <= 0) return false;
while(num % 3 == 0) num /= 3;
while(num % 2 == 0) num /= 2;
while(num % 5 == 0) num /= 5;
return num == 1;
}
```