求出两个正整数之间的所有完数

 

如有帮助望采纳,点击我回答右上角【采纳】按钮。

思路:

 

//思路就是遍历这段范围,判断其他因数相加是否等于它本身,等于的话,再依次输出。
// 出现运行超时的结果有可能是使用完Scanner没有及时关闭,最好用完就关掉。
// 还有一个要注意的点就是每次用完sum之后在下次使用之前要把sum赋值为一。
//思路就是遍历这段范围,判断其他因数相加是否等于它本身,等于的话,再依次输出。
// 出现运行超时的结果有可能是使用完Scanner没有及时关闭,最好用完就关掉。
// 还有一个要注意的点就是每次用完sum之后在下次使用之前要把sum赋值为一。
import java.util.Scanner;
public class Test {
    public static void main(String[] agrs) {
        Scanner in=new Scanner(System.in);
        int m=in.nextInt();
        int n=in.nextInt();
        int i,j,sum,flag=0;
        for(i=m;i<=n;i++){
            if(i==1) continue;
            sum=1;
            for(j=2;j<i;j++){
                if(i%j==0)
                    sum=sum+j;
            }
            if(sum==i){
                flag=1;
                System.out.printf("%d",sum);
                in.close();
            }
        }
        if(flag==0)
            System.out.println("None");

    }
}

 

import java.util.*;
public class Test{
    public static void main(String args[]){

        int i,j;
        int m,n;
	    int num;//因子之和 
        Scanner in = new Scanner(System.in);
        m = in.nextInt();
        n = in.nextInt();
	    for(i=m;i<=n;i++){
		    num = 0;
		    for(j=2;j<=i;j++){ //j代表i对应的任何一个可能的因子 
			    if(i %j == 0){
				    num += i/j;  
			    }
		    }
		    //判断因子之和是否和该数相等
		    if(num==i){
                System.out.println(i+"是完数");
		    } 	
	    }
    }
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632