原始问题:
小红的完美数挑战:从数组中选取两个元素使其乘积为完美数的方法数
解析:首先需要遍历数组,找到所有的完美数。然后再遍历完美数,找到所有与之相乘为完美数的元素对。最后计算这些元素对的数量。
代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
sc.close();
int count = 0;
for (int i = 0; i < n; i++) {
if (isPerfectNumber(arr[i])) {
for (int j = 0; j < n; j++) {
if (arr[j] != 0 && isPerfectNumber(arr[i] * arr[j])) {
count++;
}
}
}
}
System.out.println(count);
}
public static boolean isPerfectNumber(int num) {
int sum = 0;
while (num > 0) {
int digit = num % 10;
if (digit != 0) {
sum += digit;
}
num /= 10;
}
return sum == num;
}
}
Prev:行政员工履职情况