广东铁路运行示意图:java求1-100的素数,有这么一个程序我看不懂

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 03:08:24
public class ss
{
public static void main(String args[])
{
int i,j;
for(j=2;j<=100;j++) //2-100的数
{
for(i=2;i<=j/2;i++) //这是做什么用的
{
if(j%i==0)
break;
}
if(i>j/2) //应是只处理2和3的吧
{
System.out.println(j);
}
}
}
}
求人指导,求素数的基本思路是什么,我只知道选要列出1-100的数然后通过什么比较法求了?请辩解!!!

for(i=2;i<=j/2;i++) //依次从2 到j/2的每个数去除j,如果期间有一个数可以除以,则执行break; 终止for(i=2;i<=j/2;i++)循环,进入下个for(j=2;j<=100;j++) 继续判断下个数,直到(j%i==0) 为假时输出这个质数System.out.println(j);
********************************************
这个算法的计算次数还是有点多,所以建议将i循环改为2 TO int(sqrt(j))这样可以在不改变运算精度的情况下减少计算次数

***********************************************
知道什么是质数也就知道了求质数的基本思路了,质数就是只有1和它本身可以将其整除的数。

其实是一个穷举的过程.一个素数只能被1和它本身整除.所以就用2到它自己的每一个数字去除,j\2是少做重复工作用的.前一半都除完了 后一半就不用除了