[英]Divisors of a number: How can I improve this code to find the number of divisors of big numbers?
[英]How can i find the divisors of an input?
編寫一個程序,將整數N作為輸入並打印(單行)N的所有除數。輸入驗證:如果N為負數(嚴格小於零),則程序應顯示錯誤消息並保持要求輸入有效的N(請參見下面的示例)。
樣品運行:
Enter N: 10
The divisors of N are: 1 2 5 10
我知道如何輸入所有內容,我只是停留在如何執行除數部分。 我會使用某種嵌套循環還是我可以使用sum_math類型的東西?
這個任務聽起來像作業。 這就是為什么我將提出的解決方案不使用任何內置函數的原因。
為了找到給定數字n的所有除數,您應該迭代所有直到sqrt(N)的數字,如果給定數字i
除以n(即n%i == 0
),則應將數字i
與(n/i)
除數。 之后,對數組進行排序。 如果n是理想平方,則要特別小心(然后i
和n/i
是同一件事)。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.