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

解决方案 »

  1.   

    class example3_8
    { public static void main(String args[])
      { int i,j;
      for(j=2;j<=50;j++)//从2开始,应为1不是,遍历每一个在2-50数j,进行判断。
      { for(i=2;i<=j/2;i++)//开始判断j,用j除以比j/2小的数也就是i,看是否能整除
      { if(j%i==0)             因为j不可能被比j/2大的数整除,所以范围是j/2,为提高效率,
      break;                   效率最高的是j的开方
      }
        
      if(i>j/2)//经过i的循环,如果j%i==0跳出了循环,这时的i一定小于j/2且这时的j不是素数,
                           那么i大于j/2 j就是素数了。
      { System.out.println(""+j+"是素数");
      }
      }
      }

    累死我了,明白了没啊?