a010. 因數分解

 

  1. 讀入數字: 程式一開始會從標準輸入中讀取一個整數 n。

  2. 處理特殊情況: 如果輸入的數字是 1,則直接輸出 "1",因為 1 的因數只有 1 本身。

  3. 迴圈因數分解: 使用 for 迴圈從 2 開始遍歷到 n。

  4. 找因數: 每次迭代,檢查當前數字是否能被迴圈變數 i 整除,如果是,則表示 i 是 n 的因數之一。

  5. 計算因數次數: 當找到一個因數後,使用 while 迴圈持續除以這個因數,同時計算該因數出現的次數。

  6. 輸出結果: 如果某個因數出現的次數大於 1,則輸出因數的次方形式,例如 i^t;否則,只輸出因數 i。

  7. 重置計數器: 在處理完一個因數後,將計數器 t 重置為 0。

  8. 輸出乘號: 如果還有其他因數需要處理(即 n 大於 1),則在因數之間輸出乘號 " * "。


以下詳解:
#include<iostream>
using namespace std;

// 因數分解次方版

int main(){
    int n = 0, t = 0;
    cin >> n;
    if(n == 1){
        cout << "1";
    }
    else{
        for(int i = 2; i <= n; i ++){
            if(n % i == 0){
                while(n % i == 0){
                    n /= i;
                    t += 1;
                }
                if(t>1){
                    cout << i << "^" << t;
                }
                else
                    cout << i;
                t = 0;
                if(n > 1){
                    cout << " * ";
                }
            }
           
        }
    }
}

留言

這個網誌中的熱門文章

a034. 二進位制轉換

m931. 1. 遊戲選角