#34663: 先自己想想,沒想法再點進來看喔! (非C語言可參考解題思路)


b1115102@mail.nuk.edu.tw (謝承峻)

學校 : 不指定學校
編號 : 226823
來源 : [118.231.200.53]
最後登入時間 :
2024-07-08 11:12:05
a010. 因數分解 | From: [101.137.48.164] | 發表日期 : 2023-04-06 15:12

因數分解,我們算數學時使用短除法,從最小的質數開始檢查。

當遇到該數的因數時,就把該數除以此質數得到商數,然後重複,直到確定商數已經不能再被此數整除為止。

本題解題思路跟以前算數學一樣! 

從2開始算,當發現這個數字(假設a)可以讓input整除,我們就要算算看在input裡面可以提出多少a

當確定可以提出幾個後,我們需要把input除以你提出的數字 

最後,要輸出了,因為題目要求,最後一項並沒有「 * 」出現,因此需設一些條件:

首先先把input的質因數輸出來:

     printf("%d", i);

然後接著判斷input是否已經是最後一個數字了! 

             if(input!=1)
            {
                printf(" * ");
            }

因為如果是最後一個數字,那input會被除到只剩1,因此「不等於1」就可以當作條件

 

#不須知道質數有哪些喔! 因為假設該數非質數,就會因為之前它的因數已經跑過迴圈,所以input就不可能被它(非質數)整除,因此就不會跑進去計算了! 

加油哦~~

 

 
ZeroJudge Forum