如何检查数组是否有可能的除数?

时间:2014-03-17 22:15:55

标签: java arrays for-loop

创建数组,我让用户选择长度:

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;
        }
    }
}

1 个答案:

答案 0 :(得分: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;
}