【问题标题】:Finding Perfect numbers; control structures in java寻找完美的数字; java中的控制结构
【发布时间】:2020-02-14 23:35:05
【问题描述】:

大家好,我正在尝试编写代码来查找前 4 个自然数,但我不知道为什么我的代码无法让我得到答案。我没有得到任何输出,程序结束时没有给我输出。请告诉我我的逻辑到底有什么问题。谢谢!

public static void main(String[] args){
        int sum = 0, check = 1, min = 1;
        while(min < 10000){
            while(check<min){
                if(min % check == 0){
                    sum = sum + check;
                }
                check++;
            }
            if(sum == min){
                System.out.println(sum);
            }
            min++;
        }
    }
}

【问题讨论】:

  • 自然数是大于 0 的整数,例如1,2,3,4,5。你是说素数吗?
  • 标题说你在寻找“完美数”(自然数是它们的正除数之和),这是真的吗?

标签: java controls counter


【解决方案1】:

你的意思是找到前四个完美数字?

int i = 0; // or i = 1
int count = 0;
while (count < 4) {
    int k = 0;
    for (int j = 1; j < i; j++) {
        if (i % j == 0) {
            k += j;
        }
    }
    if (k == i) {
        count++;
        System.out.println(k);
    }
    i++;
}

输出

0
6
28
496

或者如果开始i = 1

6
28
496
8128

【讨论】:

  • 感谢我的男人的回复。但是是否有可能在没有真正设置计数来找到四个的情况下找到这些数字,假设我是否必须找到 0 到 100000 之间的所有完美整数。我将如何解决这个问题以及我的逻辑到底在哪里失败,在上面例如,我得到错误的结果?谢谢
  • 而不是count &lt; 4,您将使用count &lt; 100000 作为while 循环的条件。
  • i 的初始值是任意的,只要 0
猜你喜欢
  • 2011-02-08
  • 2022-11-09
  • 1970-01-01
  • 2012-10-01
  • 2016-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
相关资源
最近更新 更多