天天看點

利用C++,将一個正整數分解質因數。例如:輸入 90,列印出 90 = 2 * 3 * 3 * 5

提示:

1、 對 n 進行分解質因數,應先找到一個最小的質數 k,k 的值應該從 2 開始,然後按下述 步驟完成:

2、 如果這個質數恰等于 n,說明分解質因數的過程已經結束,列印出即可。

3、 如果 n > k,但 n 能被 k 整除,則應列印出 k 的值,并用 n 除以 k 的商,作為新的正整 數 n,重複執行第一步。  如果 n 不能被 k 整除,則用 k + 1 作為 k 的值,重複執行第一步。 

#include <iostream>
using namespace std;
int main()
{
    int n;//輸入的正整數
    int k = 2;//最小的質數

    cout <<"請輸入一個正整數" << endl;
    cin >> n; 
    cout << "将" << n << "分解成質因數" << endl;
    cout << n << " = ";

    while(1)
    {
        if (n == k)
        {
            cout <<  k << endl;
            cout << "分解質因數的過程已結束" << endl;
            break;
        }

        else if (n > k)
        {
            if (n % k == 0)  //n能被k整除
            {
                cout << k << " * " ;
                n = n / k;
            }
            else //n不能被k整除
            {
                k = k+1;
            }
        }
    }
   
        
    
}