public class Test2 {
public  static void main(String[] args) {

int n = 101;
int m = 1000;

for(int i=2; i<Math.sqrt(n); i++){
if(n % i != 0){
System.out.print(n+" ");
++n;
if(n>m) {break;}
}

}
}
}
为什么我怎么改M输出的结果都是 101 102 103 104 105 106 107

解决方案 »

  1.   

    public class aa {
    public static void main(String[] args) {
    for(int i=100;i<=200;i++){
    for(int j=2;j<i/2;j++){
    if(i%j==0)
    break;
    else{
    System.out.println(i);
    break;
    }
    }

    }
    }
    }
      

  2.   

    质数不是这么求的,LZ的程序(比如m = 100000)
    i的值:2, 3, 4, 5, 6, 7, 8, 10
    i = 2时,n=101,n%2 != 0, 打印101,++n, n = 102
    i = 3时,n=102,n%3 = 0, 
    i = 4时,n=102,n%4 != 0, 打印102,++n, n = 103
    i = 5时,n=103,n%5 !=0, ,打印103,++n, n=104
    i = 6时,n=104, n%6 != 0, 打印104,++n, n=105
    i = 7时,n=105, n%7 != 0, 打印105,++n, n=106
    i = 8时,n=106, n%8 != 0, 打印106,++n, n=107
    i = 9时,n=107, n%9 = 0
    i = 10时,n=107, n%10 != 0, 打印107,++n, n=108
    .....其他LZ自己考虑吧至于求101到200之间的质数,可以这样:public class Test {
    public static void main(String[] args) {
    for(int n=101; n<=200; n++) {
    boolean flag = true;
    for(int i=2; i<Math.sqrt(n)+1; i++) {
    if(n % i == 0) {
    flag = false;
    break;
    }
    }

    if(flag == true)
    System.out.print(n + " ");
    }
    System.out.println();
    }
    }
      

  3.   


    public class Prime {
    // 判断num是不是素数,是则返回true
    public static boolean isPrime(int num) {
    if (num == 2 || num == 3)
    return true;
    if (num % 2 == 0)// num为偶数
    return false; // num为奇数
    int d = 3;
    while (d <= Math.sqrt(num) && num % d != 0) {
    d += 2;
    }
    if (num % d != 0)
    return true;
    return false;
    } public static void main(String[] args) {
    for (int i = 101; i < 200; ++i) {
    if (isPrime(i))
    System.out.println(i);
    }
    }}