2012-09-20 25 views
0

編寫一個程序,它將整數N作爲輸入並打印出(在單行上爲 )N的所有除數。輸入驗證:如果N是 負數(嚴格小於零),則程序應該 顯示錯誤消息,並保持要求一個有效的N(見下文樣品運行 )。我如何找到輸入的除數?

採樣運行:

Enter N: 10 
The divisors of N are: 1 2 5 10 

我知道如何輸入的一切,我只是停留在如何做除數部分。我會使用某種嵌套循環嗎?或者我可以使用sum_math類型的東西?

+0

聽起來像功課。 – jgritty

+3

此外,你應該發佈一些代碼,你嘗試過這麼遠嗎?什麼在工作?你能否至少告訴我們你正在閱讀數字並確定它們是正面還是負面。 – jgritty

+1

@jgritty:家庭作業標籤已被棄用。因此很明顯,這並不重要,如果它的功課任何更多... –

回答

0

這個任務聽起來像功課。這就是爲什麼我建議的解決方案不使用任何內置函數。

爲了找到一個給定數量的全部約數n您應該遍歷所有的數字最多的sqrt(N),如果給定的數字i除以N(即n%i == 0)你應該添加的數量i(n/i)到除數。之後對數組進行排序。請特別注意,如果n是完美的正方形(當時in/i是一樣的)。

希望這會有所幫助。

+0

次要訴:開方(N)的技巧是至關重要的,當你危險的,但矯枉過正的功課,在性能並不重要,你不想來讓自己負擔驗證事實上是正確的(正如你應該一直這樣做!)。 – delnan

相關問題