题目描述:

自己的问题解答:
package com.jiahao;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class P2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
for(int i=4;i<=N;i++){
getFactors(i);
}
}
private static void getFactors(int n) {
int sum = 0;
List a = new ArrayList();
a.add(1);
for(int i=2;i<=Math.sqrt(n);i++){
if(n%i == 0){
a.add(i);
if(n != i*i){
a.add(n/i);
}
}
}
Collections.sort(a);;
for(int j=0;j<a.size();j++){
sum = sum + (int)a.get(j);
}
if(sum == n){
System.out.println(n+" " + "its factors are" + a);
}
}
}
运行答案:

疑问:怎么才能消除这个方括号,让它和题目描述一致?求大佬们解答
这是一个Java程序,它读取一个整数N,然后计算并打印从4到N的所有数字的因数及其总和。如果因数的总和等于输入的数字N,程序将输出该数字及其因数列表。程序使用了ArrayList来存储因数,并通过Collections.sort进行排序。主要涉及的编程概念包括输入处理、数学运算、数据结构(ArrayList)和条件判断。
2937

被折叠的 条评论
为什么被折叠?



