「用java找完数」找出n以内的所有完数java

博主:adminadmin 2022-11-29 08:17:08 43

今天给各位分享用java找完数的知识,其中也会对找出n以内的所有完数java进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

编写java循环程序,找出1000以内的所有完数

public class Test {

    public static void main(String[] args) {

        int i,j,sum;    //sum用来存放因子之和        

        for(i=1;i1000;i++)   //对1到1000以内的数依次尝试

        {

           sum = 0;          //给sum赋值,同时也是对上一次的值清空

           for(j=1;j=i/2;j++)   //查找因子

           {

               if(i%j==0)          // 如果是因子

               {

                    sum+=j;        //把当前的因子累加到sum中   

               }

           }

           if(sum==i)            //判断是不是完数,即因子之和等于自身

           {

               System.out.print(i+" its factors are:   ");        //是完数,输出

            for(j=1;j=i/2;j++)                          //再次找出这个完数的因子

            {

               if(i%j==0)                                    //输出各个因子

                System.out.print(j+", ");

               }

               System.out.println();

            }

        }

    }

}

这些题百度里面都是找得到的

java求100以内完数。

看不懂的话给我发信息。我已经写的很详细了,有些基本语法要不懂,可以查下百度。

public class test{

//取出1-no之间的所有完数

public static void getWS(int no){

for(int i=4;i=no;i++){//因为1,2,3肯定不是完数,就姑且从4开始检查,一直检查到no

if(checkWS(i)){

System.out.println(i);//调用checkWS(int n)方法,检查该整数是否是完数。如果该数是完数,输出。

}

}

}

//判断整数n是否是完数

public static boolean checkWS(int n){

int sum=1;//1肯定是一个能整除整数n的被除数,初始化n的所有因子之和sum

for(int i=2;i=n/2;i++){

if(n%i==0){//%求余,如果余数等于0,则i为该整数的因子,那么把sum=sum+i.这里只检查从2到n/2之间的数,因为大于4的整数最大的因子不会超过他的一半, 这样能提高程序效率

sum+=i;

}

}

return sum==n?true:false;//如果最终因子和sum等于它本身则返回true,否则返回false

}

public static void main(String args[]){

getWS(100);//输出100内的完数,这里的数字填多少就找出1-多少之间的所有完数

}

}

Java怎么判断是否是完数

完数就是它的所有(余数为0的)被除数相加的和等于它本身(其中的被除数要除去它本身)

判断10000以内的完数

for(long i =1;i10000;i++){

long sum=0;

for (long j=1;ji+1 ;j++ )

{

if(i%j==0){

sum+=j;

}

}

if(sum/2==i){

System.out.println(i);

}

}

不知道我的理解对不对。。。。。

java编程 求完全数

直接把我的答案复制测试,一定通过。。

注意:类名

public class QiouWanQuanShu {

public static void main(String[] args) {

int sum=0; //用来存放因数的和

System.out.print("1000中de完全数有:");

for(int i=1;i=1000;i++){ //循环1000次

for(int j=1;ji;j++){

if(i%j==0) //判断除数是否被整除

sum=sum+j;

}

if(i==sum) //判断因数是否与这个数的本身想等

System.out.print(i+" ");

sum=0; //初始存放因数的和,下次循环继续用

}

}

}

设计java程序找出1到100的完数。

import java.util.Iterator;

import java.util.LinkedList;

import java.util.List;

public class Test {

public static void main(String[] args) {

List retList = getPerfectNumber(1,100);

Iterator itr = retList.iterator();

while (itr.hasNext()){

System.out.println(itr.next());

}

}

/**求某整数范围内的完数(当2个入参相等时相当于判断其是否为完数)

* @param minNumber

* @param maxNumber

* @return

*/

private static List getPerfectNumber (int minNumber, int maxNumber){

List resultList = new LinkedList();//用来存放找到的完数

//检查入参

if (minNumber1 || minNumbermaxNumber){

System.out.println("入参错误,minNumber必须大于0且小于或等于maxNumber");

return resultList;

}

for (int i=minNumber; i=maxNumber;i++){

int sum = 1;

for (int j=2; ji;j++){

if (i%j==0){//找到真约数

sum = sum + j;//累计真约数

}

}

if (sum !=1 sum == i){//找到完数

resultList.add(i);

}

}

return resultList;

}

}

java求完数

因为这里的sum实际上就是你要的完数,所以你在1到1000之内,没算一次完数,就需要把sum置为0;不然就像你把int sum=0;放到for(int i=1;i=1000;i++)之前,sum每次都没有置0,sum会一直累加,所以sum不会等于i,所以没有输出结果了

关于用java找完数和找出n以内的所有完数java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-29,除非注明,否则均为首码项目网原创文章,转载请注明出处。