[編程題]分解因數

分解因數

鏈接:https://www.nowcoder.com/questionTerminal/0f6976af36324f8bab1ea61e9e826ef5
來源:牛客網

題目描述:
所謂因子分解,就是把給定的正整數a,分解成若干個素數的乘積,即 a = a1 × a2 × a3 × … × an,並且 1 < a1 ≤ a2 ≤ a3 ≤ … ≤ an。其中a1、a2、…、an均爲素數。 先給出一個整數a,請輸出分解後的因子。

輸入描述:
輸入包含多組數據,每組數據包含一個正整數a(2≤a≤1000000)。

輸出描述:
對應每組數據,以“a = a1 * a2 * a3…”的形式輸出因式分解後的結果。

示例:
輸入
10
18

輸出
10 = 2 * 5
18 = 2 * 3 * 3

題目分析:
所有的數都可以寫成幾個素數的積,利用短除法的思想就可以順利解題。

代碼示例:

#include <iostream>
#include <cmath>
using namespace std;

int main()
{ 
    int a; 
    while (cin >> a)
    {  
        cout << a << " = ";
        for (int i=2;i<=a;++i)
        {
            while (a % i == 0)
            {
                if (a != i)
                    cout << i << " * ";
                else
                    cout << i;
                a = a / i;
            }
        }
        cout << endl;
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章