我的任务是找到最小的正整数,比如“A”,这样“A”的数字乘积正好等于 N。
例如:假设我的 N = 32,所以我的 A 是 48,因为 32 的除数是 1、2、4、8、16、32,而 32 的最小数字是 4 和 8。所以输出是 48。
我所做的是首先读取 N,然后找到除数并将它们存储在一个列表中。并使用
if(l.get(i)*l.get(i+1)==N) {
sysout.print(l.get(i));
sysout.print(l.get(i+1));
但我无法将数字设为最低。如果找不到匹配项,我还需要打印为 -1。
为此我做了:
if (l.get(i)*l.get(i+1)!=N) {
System.out.print(-1);
break;
}
但它最初只打印 -1 并中断。现在我被困在这里。请在下面找到我的代码:
我的代码:
int N=1;
Scanner in = new Scanner(System.in);
List<Integer> l = new ArrayList<Integer>();
System.out.println("Enter N: ");
if (N>=0 && N<=Math.pow(10, 9)) {
N = in.nextInt();
}
for (int i=1; i<=N;i++) {
if (N%i==0) {
l.add(i);
}
}
System.out.println(l);
for (int i=0; i<l.size()-1;i++) {
if (l.get(i)*l.get(i+1)==N) {
System.out.print(l.get(i));
System.out.print(l.get(i+1));
}
}
in.close();
请帮助。谢谢。