0
点赞
收藏
分享

微信扫一扫

java 1129 区间内的完全数

题目描述
编写程序,要求输出a到b之间的所有完全数。所谓完全数是只指其真因子(除自身以外的因子)之和与它本身相等的正整数。如6=1+2+3,6是一个完全数。

输入要求
输入两个正整数a和b。

输出要求
输出区间[a,b]之间的所有完全数。每个完全数占一行。

输入样例
1 10000

输出样例
6
28
496
8128

package myJavaStudy;

import java.util.Scanner;

public class yuan {
    public static void main(String[] args) {
        int i, j;
        int a, b;
        int sum = 0;
        Scanner scanner = new Scanner(System.in);
        a = scanner.nextInt();
        b = scanner.nextInt();
        scanner.close();
        for (i = a; i <= b; i++) {
            // 保证每次和都是0,因为是不同的数
            sum = 0;
            for (j = 1; j < i; j++) {
                // 判断是否是因子
                if (i % j == 0) {
                    sum = sum + j;
                }
            }
            // 如果因子和等于那个数的本身,说明是完数
            if (sum == i) {
                System.out.println(i);
            }
        }

    }
}
举报

相关推荐

0 条评论