C++分解质因数的高效算法

   2024-10-06 2120
核心提示:#include iostream#include vectorusing namespace std;void primeFactors(int n) {vectorint factors;while (n % 2 == 0) {fact

#include <iostream>#include <vector>using namespace std;void primeFactors(int n) {    vector<int> factors;    while (n % 2 == 0) {        factors.push_back(2);        n = n / 2;    }    for (int i = 3; i*i <= n; i = i + 2) {        while (n % i == 0) {            factors.push_back(i);            n = n / i;        }    }    if (n > 2) {        factors.push_back(n);    }    cout << "Prime factors of the number are: ";    for (int i = 0; i < factors.size(); i++) {        cout << factors[i] << " ";    }}int main() {    int n;    cout << "Enter a number to find its prime factors: ";    cin >> n;    primeFactors(n);    return 0;}

这是一个用于分解质因数的高效算法,首先判断2是否为n的因数,然后从3开始每次递增2判断是否为质因数,直到质因数的平方大于n为止。最后判断n是否大于2,如果是则加入质因数列表中。输出结果为输入的数的所有质因数。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号