分解因數
鏈接: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;
}