日期:2014-05-20  浏览次数:20856 次

求助,简单的计算问题
想把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);}
  }

------解决方案--------------------
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;
}
}
}
------解决方案--------------------
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();

}
------解决方案--------------------
private void Jisuan(i) 

这个方法的声明就不对

应该为 private void Jisuan(int j)

参数不能用i ,因为你方法体里面又重新定义了i。

private 不确定有没有问题,声明成public肯定没问题

最好弄个ide ,编译的错误一目了然

另java中不成文的规定 方法名第一个字母小写!!!
------解决方案--------------------
Java code

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();
   } 
}