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+"是素数");
}
}
}
}
{
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+"是素数");
}
}
}
}
换成i<=sqrt(j)效率更好当然要变遍历一遍
否则怎么知道这个数有没有别的因子呢?
这是效率的问题,你当然直接i<=j也行,只是做多了多余的比较。
这里是一个数学的问题。你可以问你的数学老师看看。