c++

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

小樊
105
2024-07-14 08:03:26
栏目: 编程语言

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

#include <iostream>
#include <vector>

void primeFactorization(long long n) {
    std::vector<long long> factors;

    for (long long i = 2; i * i <= n; i++) {
        while (n % i == 0) {
            factors.push_back(i);
            n /= i;
        }
    }

    if (n > 1) {
        factors.push_back(n);
    }

    std::cout << "Prime factors of the number are: ";
    for (long long factor : factors) {
        std::cout << factor << " ";
    }
}

int main() {
    long long number;
    std::cout << "Enter a number to find its prime factors: ";
    std::cin >> number;

    primeFactorization(number);

    return 0;
}

在上面的代码中,首先定义了一个primeFactorization函数,该函数接受一个大数n作为参数,并将其分解为质因数存储在factors向量中。然后在主函数中,从标准输入中读取一个大数,并调用primeFactorization函数来计算其质因数。最后输出质因数序列。

0
看了该问题的人还看了