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

2024-01-07 17:50:08

?
#include<string.h>
#include <iostream>
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<string.h>
#include <iostream>
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;
}

 

文章来源:https://blog.csdn.net/laocooon/article/details/135441371
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。