C++與演算法

解答 - 質因數分解

i = 2, 3, 4, ...嘗試看看 i 能不能整除n。

一旦可以整除,就輸出i,並且讓 n = n/i,直到無法整除為止。


以120來說:

code

#include<iostream>
using namespace std;

int main()
{
    int n;
    int i;

    cin >> n;

    i = 2;
    while( n > 1 )
    {
        while( n%i == 0 )
        {
            cout << i << " ";
            n = n/i;
        }
        i = i+1;
    }
    cout << endl;

    return 0;
}

挑戰

讓 output 變成是 120 = 2^3 * 3^1 * 5^1 的形式