Pollard Rho因数分解

//Pollard Rho因数分解
//1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
//(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
// 重复执行第一步。
//(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

#include <iostream>
#include <vector>
using namespace std;
int main()
{
    long num;
    cin >> num;
    for (int i=2; i<=num;i++) {
        while (num != i) {
            if(num % i ==0)
            {
                cout << i << "*";
                num /= i;
            }
            else
                break;
        }
    }
    cout <<  num << endl;
    return 0;
}// 987654321 379721

点赞