注册 登录
编程论坛 JAVA论坛

java求范围内的完数

lousang 发布于 2018-03-23 13:36, 5082 次点击
编程找出m~n之间的所有完数,m和n为从键盘输入的两个整数。一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3。
package perfectnum;

import java.util.Scanner;

public class PerfectNum {
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        int m = in.nextInt();
        int n = in.nextInt();
        System.out.print(m);
        System.out.print(" to"+n);
        System.out.println(" WanShu:");
        for(int i = m;i <= n;i++) {
            int sum = 0;//查找因数
            for(int j = 1;j < m;j++) {
                if(i % j == 0) {
                    sum = sum + j;//因数之和
                }
                if(sum == i) {//如果因数之和等于数本身则输出
                    System.out.print(i);
                    System.out.print(",");
                }
            }
        }
    }
}
4 回复
#2
lousang2018-03-23 13:44
为什么我的没有输出呢
#3
疯狂的小a2018-03-23 14:42
程序代码:
import java.util.Scanner;

public class Test {
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        int m = in.nextInt();
        int n = in.nextInt();
        System.out.print(m);
        System.out.print(" to " + n);
        System.out.println(" WanShu:");
        int s;
        for (int i = m; i <= n; i++) {
            s = 0;
            for (int j = 1; j < i; j++)
                if (i % j == 0)
                    s = s + j;
            if (s == i)
                System.out.print(i + " ");
        }
        System.out.println();

    }
}
#4
lousang2018-03-23 16:28
感谢!解决了
#5
cai4105795172018-04-14 15:24
1