2012年11月20日 星期二

傳統數學問題的解決



如果有一個正整數n,其值等於所有n 的因數(除了n 以外)之總合,則n 稱為「完美數」(Perfect number)。在此計算中,其「因數」不限制為「質因數」。請輸出2 到數字k 之間的完美數。

輸入說明:
第1 行有1 個數字,代表k 的值。而k 的值不超過50000。

輸出說明:
每行輸出1 個範圍內的完美數,依其值由小到大輸出。

輸入範例:【檔名:in.txt】
10000
輸出範例:【檔名:out.txt】

6
28
496
8128

4 則留言:

  1. Dim ans As Integer
    Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Input #1, num
    For i = 1 To num
    For ii = 1 To i
    If i Mod ii = 0 And ii <> i Then ans = ans + ii
    Next
    If ans = i Then Print #2, i
    ans = 0
    Next
    Close #2
    Close #1
    End
    End Sub

    回覆刪除
  2. 作者已經移除這則留言。

    回覆刪除
  3. Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out .txt" For Output As #2
    Input #1, n
    For j = 4 To n
    For i = 1 To j - 1
    If j Mod i = 0 Then ans = ans + i
    Next
    If ans = j Then Print #2, j
    ans = 0
    Next
    Close #2
    Close #1
    End
    End Sub

    回覆刪除
  4. Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Input #1, x
    For k = 1 To x
    s = 0
    For i = 1 To k \ 2
    If k Mod i = 0 Then s = s + i
    Next
    If s = k Then Print #2, k
    Next
    Close
    Close
    End
    End Sub

    回覆刪除