package lianxi;
public class sushu {
public static void main(String[] args) {
      for(int i=2;i<=100;i++)
      {
     if(bingo(i))
     {
     System.out.println(i);
     }  
      }
}
public static boolean bingo(int i) {
boolean bingo=false;
for(int j=2;j<i;j++)
{
if(i%j==0)
{
return false;
}else
{
return true;
}
}
return bingo;
}
}

解决方案 »

  1.   


    public static boolean bingo(int i) 
    {
    boolean bingo=true;//改一下
    for(int j=2;j<i;j++)
    {
    if(i%j==0)
    {
    return false;
    }
    /*else //一个余数不等于零,不能说明就是素数.
    {
    return true;
    }*/
    }
    return bingo;//循环完,没有提前返回,肯定是素数。
    }
      

  2.   

    循环到一半即可,多余没用了.    for(int j=2;j<i/2;j++)//    j<i  -->  j<i/2
      

  3.   

    楼上正解!!也可循环到它的平方根 public static boolean bingo(int i) 
    {
    if(i<2)
    return false;
    for(int j=2;j<=Math.sqrt(i);j++)
    {
    if(i%j==0)
    {
    return false;
    }
    }
    return true;
    }
      

  4.   


    我想问下我的这段代码这块算法哪不对呢 求指点
    public static boolean bingo(int i) {
    boolean bingo=
    for(int j=2;j<i;j++)
    {
    if(i%j==0)//如果能被除开说明除了1和它本身之外还有别的数能除开它所以不是素数
    {
    return false;
    }else
    {
    return true;
    }
      

  5.   

    你这个的问题是值判断了j=2的情况
    if是对的,但是else不可以,你应该循环完了才能知道它是不是素数
    能被2整除,说明它不是素数;不能被2整除并不能说明它是素数。
    对吧?