//输出101~200的质数
public class ForWhileIf{
public static void main(String args []){
for(int i=101;i<200;i+=2){
boolean f = true;
for (int j = 2; j < i; j++){
if(i%j == 0){
f = false;
break;
}
}
if (!f) {
continue;
}
System.out.println(""+i);
}
}
}
public class ForWhileIf{
public static void main(String args []){
for(int i=101;i<200;i+=2){
boolean f = true;
for (int j = 2; j < i; j++){
if(i%j == 0){
f = false;
break;
}
}
if (!f) {
continue;
}
System.out.println(""+i);
}
}
}
public class ForWhileIf {
public static void main(String args[]) {
//质数最起码是奇数,所以每次循环后加2,这样可以减少循环次数,提高效率
for (int i = 101; i < 200; i += 2) {
//设置标志变量,值为false表示不是质数,但是为true不能说明是质数
boolean f = true;
//从2到比自己小1的值,如果能被这些数整除,就说明不是质数,
//置f为false,退出内循环
for (int j = 2; j < i; j++) {
if (i % j == 0) {
f = false;
break;
}
}
//判断标志f的值,为true时表示是质数,要打印;为false时,表示不是质数,
//结束本次循环,继续进行下一次循环,也就是说不打印该数
if (!f) {
continue;
} System.out.println("" + i);
}
}
}我再程序中做了注释,看看,还有问题没?
很详细,但是麻烦问一下,第三个解释里的“值为true不能说明是质数”,为什么?不太懂。
boolean isPrimeNumber = true;
if(start < 1) {
start = 1;
}
for(int i=start;i<end;i++) {
isPrimeNumber = true;
for(int j=2;j<i;j++) {
if(i%j==0) {
isPrimeNumber = false;
break;
}
}
if(isPrimeNumber) {
System.out.print(i+", ");
}
}
}