bool isUgly(int num) { if(num == 1) { return true; } if(num == 0) { return false; } if(num % 2 == 0) { return isUgly(num / 2); } else if(num % 3 == 0) { return isUgly(num / 3); } else if(num % 5 == 0) { return isUgly(num / 5); } else { return false; } }
bool isUgly(int num) { if (num == 1 || num == 2 || num == 3 || num == 5) return true; if (num <= 0) return false; if (num%2 == 0) return isUgly(num/2); if (num%3 == 0) return isUgly(num/3); if (num%5 == 0) return isUgly(num/5); return false; }
bool isUgly(int num) { if (!num) return false; if (num == 1) return true; if (num % 2 == 0) return isUgly(num / 2); if (num % 3 == 0) return isUgly(num / 3); if (num % 5 == 0) return isUgly(num / 5); return false; }
bool isUgly(int num) { if (num <= 0) { return false; } if (num <= 5) { return true; } return (num % 2 == 0 && isUgly(num / 2)) || (num % 3 == 0 && isUgly(num / 3)) || (num % 5 == 0 && isUgly(num / 5)); }
int main(int argc, char** argv) { FILE* fp; char str[MAX_CHARS]; char eqn[MAX_LEN]; int ops[MAX_CHARS]; // none, '-' or '+' int numC, numPossible, numLoc; int i, eLen, numU; int64 val; if(argc != 2) { printf("USAGE: UglyNumbers <fileContainingTestVectors>\n"); return 1; } fp = fopen(argv[1], "r"); if(fp == NULL) { printf("Failed to open the input file '%s' for reading!\n", argv[1]); return 2; } while(!feof(fp)) { str[0] = '\0'; fgets(str, MAX_CHARS, fp); numC = stringLen(str, MAX_CHARS); if(str[0] == '\0') { continue; } if(numC <= 0) { continue; } // special case if(numC == 1) { printf("%d\n", (isUgly(getInt64(str, 0, 1)))? 1 : 0); continue; } numLoc = numC - 1; numU = 0; // number of possibilities numPossible = 1; for(i=1;i<numC;++i,numPossible*=3); // enumerate all of them! for(i=0;i<numPossible;++i) { int2tertiary(ops, numLoc, i); eLen = generateEqn(eqn, ops, str, numC); val = evaluateEqn(eqn, eLen); if(isUgly(val)) { ++numU; } //printf("%s %ld %d %d\n", eqn, val, numU, i); } printf("%d\n", numU); } fclose(fp); return 0; }
bool isUgly(int num) { if(num <= 0) return false; else if(num == 1) return true; else if(num % 2 == 0) return isUgly(num / 2); else if(num % 3 == 0) return isUgly(num / 3); else if(num % 5 == 0) return isUgly(num / 5); else return false; }
int main(){ int arr[]={1, 6, 8, 14}; int len = sizeof arr/sizeof arr[0]; for(int i=0; i<len; i++) printf("n=%d, result=%d\n", arr[i], isUgly(arr[i])); return 0; }
int nthUglyNum(int n){ int count=1,i=1; while(count<n){ i++; if(isUgly(i)) count++; } return i; }
int nthUglyNumber(int n) { // time limit exceed at 500 if (n <= 0) { return 0; } int cur = 0; while (n > 0) { ++cur; while (!isUgly(cur)) { ++cur; } --n; } return cur; }
int main(){ srand((unsigned)time(0)); int rand_num = rand() % 11; if (isUgly(rand_num)) printf("%d is a ugly number.", rand_num); else printf("%d isn't a ugly number.", rand_num); // getchar(); return 0; }
int GetUglyNumber2(int index) { int number=0; int finded=0; while(finded<index) { number++; if(isUgly(number)) finded++; } return number; }
int main() { int n; scanf("%d",&n); if(isUgly(n)){ printf("YES\n"); }else{ printf("NO\n"); } system("pause"); return 0; }
bool isUgly(int num) { if (num <= 0) return false; if (num == 1) return true; int factors[3] = {2, 3, 5}; for (int i = 0; i < 3; i++) { if (num % factors[i] == 0) { num /= factors[i]; return isUgly(num); } } return false; }
int main (void) { int x =4; bool res = isUgly(x); printf("Input %d %s ugly\n", x, res == true? "is" : "is not"); return 0; }
int main() { int number = 14; isUgly(number); }
#include "Catch/single_include/catch.hpp" #include "UglyNumber.hpp" TEST_CASE("UglyNumber") { REQUIRE(isUgly(1) == true); REQUIRE(isUgly(2) == true); REQUIRE(isUgly(3) == true); REQUIRE(isUgly(4) == true); REQUIRE(isUgly(5) == true); REQUIRE(isUgly(6) == true); REQUIRE(isUgly(8) == true); REQUIRE(isUgly(14) == false); }