a010. 因數分解
讀入數字: 程式一開始會從標準輸入中讀取一個整數 n。
處理特殊情況: 如果輸入的數字是 1,則直接輸出 "1",因為 1 的因數只有 1 本身。
迴圈因數分解: 使用 for 迴圈從 2 開始遍歷到 n。
找因數: 每次迭代,檢查當前數字是否能被迴圈變數 i 整除,如果是,則表示 i 是 n 的因數之一。
計算因數次數: 當找到一個因數後,使用 while 迴圈持續除以這個因數,同時計算該因數出現的次數。
輸出結果: 如果某個因數出現的次數大於 1,則輸出因數的次方形式,例如 i^t;否則,只輸出因數 i。
重置計數器: 在處理完一個因數後,將計數器 t 重置為 0。
輸出乘號: 如果還有其他因數需要處理(即 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 << " * ";
}
}
}
}
}
留言
張貼留言