C++ 求一个数是否是丑数。

 
#include
#include
using namespace std;

int isChou(int num) {
    if (num <= 0) {
        return 0;
    }

    while (num % 2 == 0) {  // 不断除以2,直到不能整除为止
        num /= 2;
    }

    while (num % 3 == 0) {  // 不断除以3,直到不能整除为止
        num /= 3;
    }

    while (num % 5 == 0) {  // 不断除以5,直到不能整除为止
        num /= 5;
    }

    while (num % 7 == 0) {  // 不断除以7,直到不能整除为止
        num /= 7;
    }

    return num == 1;  // 如果最终结果为1,则是丑数,否则不是丑数
}

int main()
{
    int num = 1;
    int cnt = 0;
    while (cnt<20) {
        if (isChou(num)) {
            cout << num << " ";
            cnt += 1;
        }
        num += 1;
    }
    cout << endl;
}

 
#include
#include 
using namespace std;

int isChou(int num) {
    if (num <= 0) {
        return 0;
    }

    while (num % 2 == 0) {  // 不断除以2,直到不能整除为止
        num /= 2;
    }

    while (num % 3 == 0) {  // 不断除以3,直到不能整除为止
        num /= 3;
    }

    while (num % 5 == 0) {  // 不断除以5,直到不能整除为止
        num /= 5;
    }

    while (num % 7 == 0) {  // 不断除以7,直到不能整除为止
        num /= 7;
    }

    return num == 1;  // 如果最终结果为1,则是丑数,否则不是丑数
}

int main()
{
    int num = 1;
    int cnt = 0;
    while (cnt<20) {
        if (isChou(num)) {
            cout << num << " ";
            cnt += 1;
        }
        num += 1;
    }
    cout << endl;
}

 

你可能感兴趣的:(c++,算法,数据结构)