为什么这不起作用?我试图检查序列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);
}
}
}
}
答案 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);
}
}