想把100到200间的质数输出,编译时却总出错,不知怎么改,希望大家帮忙,谢谢
public class ZhiShu{
  
  /*用for语句写出一个计算质数的方法*/
  private void Jisuan(i)
    {
      for(int i=100;i<200;i++)
      { 
         for(int b=2;b<i/2;b++)
          { 
            if(i%b!=0)
              continue;
            else break;
              }
          System.out.println(i);
        }
     }   public static void main(String[]args){
    int n=0;
    ZhiShu c=new ZhiShu();
    System.out.println("100到200间的质数");
     c.Jisuan(n);}
              }

解决方案 »

  1.   

    你的方法为什么还要传参?你break出来显示的就是非素数
      

  2.   

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

  3.   

    public class ZhiShu{ 
       
      /*用for语句写出一个计算质数的方法*/ 
      private void Jisuan() 
        { 
          for(int i=100;i <200;i++) 
          {  
             int j=(int)Math.sqrt(i);
             for(int b=2;b<=j;b++) 
              {  
                if(i%b!=0) 
                  continue; 
                else break; 
              } 
              System.out.println(i); 
            } 
         }    public static void main(String[]args){ 
        ZhiShu c=new ZhiShu(); 
        System.out.println("100到200间的质数"); 
        c.Jisuan();
      } 
    }
      

  4.   

    private void Jisuan(i) 这个方法的声明就不对应该为 private void Jisuan(int j)参数不能用i ,因为你方法体里面又重新定义了i。private 不确定有没有问题,声明成public肯定没问题最好弄个ide ,编译的错误一目了然另java中不成文的规定 方法名第一个字母小写!!!
      

  5.   


    public class ZhiShu{ 
       
      /*用for语句写出一个计算质数的方法*/ 
      private void Jisuan() {
          boolean flag;
          for(int i=100;i <200;i++) { 
              flag = true;
              for(int b=2;b <i/2;b++) {
                  if(i % b == 0)
                      flag = false;
              } 
              if (flag)
                  System.out.println(i); 
          } 
      }   public static void main(String[]args){
          int n=0; 
          ZhiShu c=new ZhiShu(); 
          System.out.println("100到200间的质数"); 
          c.Jisuan();
       } 
    }
      

  6.   

    啊呀,叫他把syso的內容改下不就好了,這個和程序無關吧
    不要這么斤斤計較啦ls