温馨提示×

C++分解质因数的递归和非递归方法

c++
小樊
94
2024-07-14 08:04:29
栏目: 编程语言
C++开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

非递归方法:

#include <iostream>
#include <vector>
using namespace std;

void primeFactors(int n) {
    vector<int> factors;
    for (int i = 2; i <= n; i++) {
        while (n % i == 0) {
            factors.push_back(i);
            n /= i;
        }
    }

    for (int i = 0; i < factors.size(); i++) {
        cout << factors[i];
        if (i != factors.size() - 1) {
            cout << " * ";
        }
    }
}

int main() {
    int n;
    cout << "Enter a number: ";
    cin >> n;

    cout << "Prime factors of " << n << " are: ";
    primeFactors(n);

    return 0;
}

递归方法:

#include <iostream>
using namespace std;

void primeFactors(int n, int i) {
    if (n <= 1) {
        return;
    }

    while (n % i != 0) {
        i++;
    }

    cout << i;
    if (n != i) {
        cout << " * ";
    }

    primeFactors(n / i, i);
}

int main() {
    int n;
    cout << "Enter a number: ";
    cin >> n;

    cout << "Prime factors of " << n << " are: ";
    primeFactors(n, 2);

    return 0;
}

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:分解质因数和C++编程技巧

0