根据数组中的值检查序列的术语

时间:2014-03-25 04:49:38

标签: java arrays sequences

为什么这不起作用?我试图检查序列a_j)= 38 ^ j +31的项与数组中的值。我想说的是,如果序列中的特定术语不能被数组中的任何值整除,则打印出来。

    public class SmallestPrime {

    public static void main(String[] args) {

        long m =0;

        int [] b = {2,3,4,5,6,7,8};

        for(int j=0;j<6;j++) { 

            m = (long) Math.pow(38,j) + 31;

            if(m % b[j] !=0) {

                System.out.println(m);  
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

你的问题是你只循环了一次。

例如,当j = 2时,您只检查1475是否可以被b[2]整除,恰好是4而1475不能被4整除,从而打印您的值。

您需要使用嵌套循环来实现您的目标。

以下是一些帮助的代码:

private static void smallestPrime() {
long m = 0;

int[] b = { 2, 3, 4, 5, 6, 7, 8 };

for (int j = 0; j <= 6; j++) {

    m = (long) Math.pow(38, j) + 31;
    boolean prime = true;
    for (int i = 0; i <= 6; i++) {
    if (m % b[i] == 0) {
        prime = false;
        break;
    }
    }
    System.out.println(m + " : " + prime);
}
}