2 つの方法でプログラムを作成しようとしています。1 つ目は整数を取り、その約数とその約数の合計を出力します。2 つ目は、指定された整数がその約数の合計 (完全数) と等しいかどうかを返すブール関数です。
最初の方法はうまくいきましたが、そこから整数の合計を取り、2 番目の方法で使用したいのですが、これは可能ですか? 私はそれを研究しようとしてかなりの時間を費やしましたが、成功しませんでした.
いつものように、すべてのアドバイスに感謝します。これまでのコードは以下です。
import java.util.Scanner;
import java.io.*;
class arrayTest {
public static int sumFacs(int n) {
int sumDiv[] = new int[50];
int c = 0;
int sum=0;
if(n<0){
System.out.println("Sorry I dont do negatives!");
}
else {
for(int i=1; i<=n; i++){
int j = n%i;
if(j==0){
System.out.println( i + " is a divisor of " + n + "\n");
sumDiv[c] = i;
c++;
}
}
for (int i=0; i<sumDiv.length; i++){
sum += sumDiv[i];}
System.out.println("The sum of the divisors of " + n + " is: " + sum);
}
return sum;
}
public static boolean isPerfect(int n, int sum) {
boolean b = (n == sum);
if(b){
System.out.println( n + " is a perfect number.");
}
else {
System.out.println( n + " is not a perfect number.");
}
}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter a positive integer.");
int n = scanner.nextInt();
sumFacs(n);
int sumDivisors = sumFacs(n);
System.out.println(isDivisors(sumFacs(n), n));
isPerfect(n, sum);
}
}