用java编写输出2到500之间的所有完数

用java编写输出2到500之间的所有完数,第1张

import javautilHashSet;

import javautilSet;

public class Main {

public static void main(String[] args) {

for (int i = 2; i < 500; i++) {

check(i);

}

}

private static void check(int i) {

Set<Integer> set = new HashSet<Integer>();

setadd(1);

for (int j = 2, l = (int) Mathsqrt(i); j <= l; j++) {

if (i % j == 0) {

setadd(j);

setadd(i / j);

}

}

int sum = 0;

for (int j : set) {

sum += j;

}

if (sum == i) {

Systemoutprint(i + ": ");

for (int j : set) {

Systemoutprint(j + " ");

}

Systemoutprintln();

}

}

}

求采纳

public static void main(String[] args) {

Systemoutprintln("1000以内的完数有:");

for (int i = 2; i <= 1000; i++) {

if(i == getWs(i)){

Systemoutprintln(i);

}

}

}

public static int getWs(int a) {

int sum = 1;

int sqrt = (int) Mathsqrt(a);

for (int i = 2; i <= sqrt; i++) {

if (a % i == 0) {

sum += i;

sum += a / i;

// Systemoutprintf("%d,%d,", i, a / i);

}

}

if (a == sqrt sqrt) {

sum -= sqrt;

}

return sum;

}

你的程序我帮你改完了,改动的地方见注释。

完整的程序如下:

public class A {

 public static void main(String[] args) {

  for (int i = 2; i <= 6; i++) {//这里把i<6改成i<=6 因为6是完数   

   int s=0; //这里移动到for-i循环中 

   int j=1; //这里移动到for-i循环中 

   while(j<i){    

    if(i%j==0){     

     s=s+j;     

    }

    j++;//这里移动到while-j循环外 

   }   

   if(s==i){    

    Systemoutprint(i+" ");   

   }  

  }

 }

}

运行结果:

6

你好,按照你的要求代码如下,可以直接运行,给出了运行结果

import javautilHashSet;

import javautilSet;

public class Main {

public static void main(String[] args) {

for (int i = 2; i < 1000; i++) {

check(i);

}

}

private static void check(int i) {

Set<Integer> set = new HashSet<Integer>();

setadd(1);

for (int j = 2, l = (int) Mathsqrt(i); j <= l; j++) {

if (i % j == 0) {

setadd(j);

setadd(i / j);

}

}

int sum = 0;

for (int j : set) {

sum += j;

}

if (sum == i) {

Systemoutprint(i + ": ");

for (int j : set) {

Systemoutprint(j + " ");

}

Systemoutprintln();

}

}

}

运行结果:

6: 1 2 3

28: 1 2 4 7 14

496: 16 1 2 4 248 8 124 62 31

以上就是关于用java编写输出2到500之间的所有完数全部的内容,包括:用java编写输出2到500之间的所有完数、java菜鸟求教完数的求法、java求完数代码(某自然数除它本身以外的所有因子之和等于该数,则该数被称为完数。)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10212278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存