117.info
人生若只如初见

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

非递归方法:

#include 
#include 
using namespace std;

void primeFactors(int n) {
    vector 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 
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;
}

未经允许不得转载 » 本文链接:https://www.117.info/ask/feb1eAzsIAw9RDVw.html

推荐文章

  • C++ byte数组的大小如何确定

    C++中的byte数组大小可以通过以下两种方法确定: 使用sizeof运算符:可以通过sizeof运算符获取数组的大小,例如sizeof(arr),其中arr是byte数组的名称。这将返回...

  • C++ byte数组与性能优化技巧

    在C++中,可以使用字节数组来表示二进制数据,这在处理文件、网络数据等场景中经常会用到。以下是一些性能优化技巧,可以帮助提高字节数组的处理效率: 使用指针...

  • C++ byte数组常见的操作误区

    使用sizeof获取数组长度:在C++中,使用sizeof来获取数组的长度可能会导致错误,因为sizeof返回的是整个数组占用的内存空间大小,而不是数组中元素的个数。正确的...

  • 如何在C++中高效使用byte数组

    在C++中高效使用byte数组可以通过以下几种方式实现: 使用内置数组:可以直接声明一个byte类型的数组来存储数据。这样可以直接访问数组中的元素,不需要额外的内...

  • C++如何处理大数的分解质因数

    在C++中,可以通过循环遍历从2开始的所有整数,依次判断这些整数是否能够整除给定的大数,如果能够整除,那么这个整数就是大数的一个质因数。具体实现代码如下:...

  • 分解质因数和C++编程技巧

    分解质因数是将一个正整数分解成若干个质数相乘的形式。例如,将30分解质因数可以得到2 * 3 * 5。
    下面是一个简单的C++程序,用于分解一个正整数的质因数:...

  • C++分解质因数的基础知识点

    质因数:质因数是指能整除该数的质数,即不能再分解为更小的因数的数。例如,6的质因数为2和3。 质数:质数是指只能被1和自身整除的正整数,如2、3、5、7等。 质...

  • 如何在C++中优化分解质因数的代码

    在C++中优化分解质因数的代码可以使用试除法和埃氏筛法等算法来减少时间复杂度。以下是一个使用试除法优化的例子:
    #include #include void primeFactors(i...