c++コードは、所与の数字がブスであるか否かを判断する


タイトルの説明
因子2,3,5のみを含む正の整数を丑数と呼ぶ.例えば4,10,12は丑数であり、7,23111は丑数ではなく、1も丑数ではない.関数を作成して、整数nを入力して、その整数がブスかどうかを判断して、もしそうであればTrueを出力して、さもなくばFalseを出力します.
説明の入力
行ごとに正の整数nを入力
1 <= n<= 1000000
出力の説明
各行の入力に対して、出力がブスかどうか、YesであればTrueを出力し、そうでなければFalseを出力する
サンプル入力
4
7
12

サンプル出力
True
False
True
  • このアルゴリズムは実質的にコード論理を用いて素因数分解を還元する全過程である.与えられた数値numが残りの2、3、5を0と等しい場合、numを表す因子は必ず2、3、5を含む.
  • numを2、3、5で割ると1つの因子を分解するように表すことができ、num=1の場合、与えられた数字を表す因子は2、3、5しか含まれず、定義によってこの数が醜数であることがわかる.
  • #include 
    using namespace std;
    
    bool isUgly(int num) {
    	/* num    2 ,       0;num/2          :2。
    	    , num==1 ,            2、3、5,              */
    	while (num % 2 == 0)
    		num /= 2;
    	while (num % 3 == 0)
    		num /= 3;
    	while (num % 5 == 0)
    		num /= 5;
    	return num == 1 ? true : false;
    }
    
    int main() {
    	int num;
    	/*             ,               */
    	while (true) {
    		cin >> num;
    		if (!num) {
    			break;
    		}
    		cout << (isUgly(num) ? "True" : "False") << "
    "; } system("pause"); return 0; }