java新手 素数判定求解答。

如题,下面是程序。但我不知道为什么在for语句的时候,必须使用divisor<=d/2,而divisor<=d就无法执行、、这里break是不是跳出整个while循环,还是调回到for.求解。
import java.util.Scanner;
public class Test{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
/*a为素数的个数,
b为每行打印的个数
c为变量计算素数的个数。
d为数字。
e为布尔值*/
final int a =50;
final int b =10;
int c = 0;
int d = 2;
while(c<a){
boolean e =true ;
for(int divisor =2;divisor<=d/2;divisor++){
if(d%divisor==0){
e = false;
break;}
}
if (e){
c++;
if(c%b==0)
System.out.println(d);
else
System.out.print(d+" ");
}
d++;
}

}

}

divisor<d也可以。
因为小于等于就包含了它本身,根据素数的定义,能被它自己整除也是素数。
比如7是素数,但是7可以被7整除。

break 是跳出当前循环 也就是for

楼上正解;divisor<d也可以,只是这样会加大循环的次数。
因为小于等于就包含了它本身,根据素数的定义,能被它自己整除也是素数。
比如7是素数,但是7可以被7整除。