class Example3_9
{
public static void main(String args[])
{
int sum=0,i,j;
for(i=1;i<=10;i++)
{
if(i%2==0)
continue;
sum=sum+i;
}
System.out.println("sum="+sum);
for(j=2;j<=50;j++)
{for(i=2;i<=j/2;i++)         //为什么i<=j/2呢?
{if(j%i==0)                  //为什么要用j去除以每个i呢
break;
}
if(i>j/2)                    //这条语句不知道怎么问,不理解为什么要有它
{
System.out.println(""+j+"是素数");
}
}
}
}

解决方案 »

  1.   

    i<=j/2只是为了效率
    换成i<=sqrt(j)效率更好当然要变遍历一遍
    否则怎么知道这个数有没有别的因子呢?
      

  2.   

    for(i=2;i<=j/2;i++)         //为什么i<=j/2呢?
    这是效率的问题,你当然直接i<=j也行,只是做多了多余的比较。
    这里是一个数学的问题。你可以问你的数学老师看看。