package com.demo; /** * Created by 莫文龙 on 2018/3/27. */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; /** * 一个数如果刚好等于它的因子之和,这个数就称为"完数"。 * 例如6 = 1+2+3,编程实现求[a,b]之间的所有完数 * */ public class Demo9 { //创建一个新的数组就是这样的数组就可以了吗 public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); String[] split = str.split(" "); int a = Integer.parseInt(split[0]); int b = Integer.parseInt(split[1]); for (int i = a ; i <= b ; i ++) { HashSet<Integer> set = new HashSet<>(); for (int j = 1 ; j < i ; j ++) { if (i % j == 0) { set.add(j); } } int sum = 0; for (Integer ii : set) { sum += ii; } if (sum == i) { System.out.println(i); } } } }
50道编程题之09:一个数如果刚好等于它的因子之和,这个数就称为"完数"。例如6 = 1+2+3,编程实现求[a,b]之间的所有完数
猜你喜欢
转载自blog.csdn.net/weixin_38104426/article/details/79724809
今日推荐
周排行