簡體   English   中英

如何用Java編寫一個輸出小於n的完美數字的函數?

[英]How would I write a function in Java that prints out perfect numbers less than n?

我試圖在處理中編寫一個函數,以打印出我的作業pset小於n的所有完美數字。 但是,我很難找到與該問題匹配的算法。

我寫了一個for循環,循環遍歷1到n之間的所有數字。 由於所有除數的和等於完美數,因此我進行了if語句,檢查n的余數,然后將它們加到求和變量中,稱為“結果”。 然后,在此循環結束時,如果結果等於n,則將其打印出來。

void perfect(int n) {

    int result = 0; 
    for(int i = 1; i < n; i++) {
        if(n % i == 0) {
            result = result + i; 
        }
    }
    if( result == n) {
        println(n); 
    }

}

目前,我的代碼沒有輸出任何內容。 當我將if語句移到最后時,它打印出了所有n值,但不是理想數字。 我相信我的代碼中某處正在出錯,所以n永遠不會等於“結果”。

您將必須使用嵌套的for循環來獲取從1到n的所有理想數。 如下:

int i, sum = 1;

System.out.print("Perfect nos from 1 to n are 1,");

for (int j = 2; j <= n; j++)
{
    sum = 1;
    for (i = 2; i < j; i++)
    {
        if (j % i == 0)
            sum = sum + i;
    }
    if (j == sum)
        System.out.print(j + ",");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM