-2

1 から 1000 までの完全な数を見つけようとしましたが、このコードを書きましたが、うまくいきませんでした! なにが問題ですか?

public class Perfect {
    public static void main(String[]args) {
        int sum=0;
        for (int n = 1; n < 1000; n++) {
            for (int j = 1; j < n/2 ; j++) {
                if (n % j == 0)
                    sum = sum + j;
            }
            if (sum == n) {
                System.out.println(sum);
            }
        }
    }
}
4

1 に答える 1

0

の宣言(さらに重要なのは初期化) をsum ループにfor移動します。<=また、内側のループでテストする必要があります。何かのようなもの、

for (int n = 1; n < 1000; n++) {
  int sum = 0;
  for (int j = 1; j <= n / 2; j++) {

そして、私は得る496

于 2015-12-24T17:08:45.017 に答える