public static void a(){   求101到200的素数
     //int m=(int)(Math.sqrt(n)+1);
     for(int i=101;i<=200;i++){
     for(int j=2;i<(int)(Math.sqrt(i)+1);j++){
     if(i%j==0){
     //System.out.println(n+"是素数");
       break;
     }
     if(j>(int)Math.sqrt(i)){
     System.out.print(i+" ");
     }
     }
     }
    }
这是我写的求求101到200的素数方法,但运行没有结果,这是为什么

解决方案 »

  1.   


    上班去了,你看下例子吧public static void main(String args[]) 

    int i,j; 
    for(j=2;j<=100;j++) //2-100的数 

    for(i=2;i<=j/2;i++) //{ 
    if(j%i==0) 
    break; 

    if(i>j/2) //

    System.out.println(j); 




      

  2.   


    public class SuShu {
    public static void main(String args[]) {
    int i, j;
    for (i = 101; i < 200; i++) {
    for (j = 2; j < i / 2; j++) {
    if (i % j == 0)
    break;
    } if (i % j != 0)
    System.out.println(i + "是素数!");
    } }}
      

  3.   

    for (int j = 2; i < (int) (Math.sqrt(i) + 1); j++) 
    改为
    for (int j = 2; j < (int) (Math.sqrt(i) + 1); j++) 
      

  4.   

    for (int j = 2; j < (int) (Math.sqrt(i) + 2); j++) 
      

  5.   

    不是吧,用sqrt比用i<=j/2可以减少循环次数。
      

  6.   


    public class Prime {
    /*
     * 
     * 一般求素数方法
     * 
     * @param args
     */
    public static void main(String[] args) {
    for (int i = 2; i < 100; i++) {
    int j;
    for (j = 2; j < (int) (Math.sqrt(i) + 1); j++) {
    if (i % j == 0) {
    break;
    }
    }
    if (j > (int) Math.sqrt(i)) {
    System.out.print(i + " ");
    }
    }
    }
    } 
      

  7.   


    /**
     * Title: Java Bean <br>
     * Description: 判断101到200间的素数 <br>
     * Copyright: Copyright (c) 2009 <br>
     * Company: newGlobal <br>
     * @author kong_bai.
     *  
     * @version $Revision: 1.0 $ $Date: 2009/01/13$ 
     * 
     */
    public class PrimeNumber 
    { /**
     * 静态main方法 <br>求101到200的素数
     * @param args
     */
    public static void main(String[] args) 
    {

    int i,j; for(i=101;i<=200;i++)
    {
    for (j = 2; j <= Math.sqrt(i); j++) 

    if(i % j ==0)
    {
    break;
    }
    }

    if(i % j != 0)
    {
    System.out.println(i);
    }
    }
    }}
      

  8.   

     public static void main(String args[]) {
            int i, j;
            for (i = 101; i < 200; i++) {
                for (j = 2; j < Math.sqrt(i); j++) {
                    if (i % j == 0)
                        break;
                }             if (i % j != 0)
                    System.out.println(i + "是素数!");
            }     }是最快最简单的方法
      

  9.   

    public static void main(String[] args) {
    boolean flag = false;
    for(int i=101;i<=200;i++){
    for(int j = 2;j<(int)(Math.sqrt(i)+1);j++){
    if(i%j==0){
    flag = false;
    break;
    }else{
    flag = true;
    }
    }
    if(flag){
    System.out.println(i);
    }
    }
    }
      

  10.   


    public class PrimeNumber { private static final int PRIME_END = 200;
    private static final int PRIME_START = 101;

    public static void main(String[] args) { for (int i=PRIME_START; i<=PRIME_END; i++) {
    for (int j=2; j<i; j++) {
    if (i % j == 0) {
    break;
    } else if (j == i-1) {
    System.out.print(i + " ");
    }

    }
    }
    }