ここでの私の仕事は、「A」の数字の積が正確に N に等しくなるように「A」と言う最小の正の整数を見つけることです。
例: 私の 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();
親切に助けてください。ありがとう。