Создавая массив, я разрешаю пользователю выбирать длину:
StartNum = scan.nextInt();
int[] NumBox = new int[StartNum];
for (int i = 1; i < NumBox.length+1; i++)
{NumBox[i - 1] = i;}
NumBox[0]=0;
Предполагая, что существуют другие методы, которые могут изменять ячейки в NumBox
до 0, как использовать цикл for для проверки каждой ячейки в массиве для любого делителя? Если для ячейки в массиве нет делителей, тогда он станет 0. Например, если массив равен [0,2,0,4,0,6,7,8,9]
9,2 and 7
станет 0
.
Код ниже - это то, что я устал, но далеко не ушел.
boolean NoDiv=false;
for (int a=1; a < NumBox.length+1; a++)
{
a++
for (int check=1; a < NumBox.length+1; check++)
{
if (NumBox[a-1]% check == 0 && NumBox[a-1] !=0)
{
NumBox[a-1] = 0;
}
}
}
for (int i = 0; i < NumBox.length; i++) {
if (NumBox[i] == 0) continue;
boolean hasDivisor = false;
for (int j = 0; j < i; j++) {
if (NumBox[j] == 0) continue;
if (NumBox[i] % NumBox[j] == 0) {
hasDivisor = true;
break;
}
}
if (!hasDivisor) NumBox[i] = 0;
}
NumBox.Length
Я думаю, это была опечатка?