黑马程序员技术交流社区
标题:
求101到200之间素数的问题
[打印本页]
作者:
李贺晓
时间:
2012-11-8 15:01
标题:
求101到200之间素数的问题
class Test2
{
public static void main(String[] args)
{
int count=0;
for(int i=101;i<200;i+=2)
{
boolean flag=false;
for(int j=2;j<Math.sqrt(i);j++)//这里j为什么要小于Math.sqrt(i)呢??这个是怎么确定的
{
if(i%j==0)
{
flag=false;
break;
}
else
{
flag=true;
}
}
if(flag=true)
{
count++;
System.out.println(i);
}
}
System.out.println("素数的个数为:"+count);
}
}
作者:
杨政
时间:
2012-11-8 15:16
判断一个数为素数的依据就是 它不能被2到它的平方根的所有数整除。
for(int j=2;j<Math.sqrt(i);j++)//所以这里j<=Math.sqrt(i)。应该是小于或等于吧!
作者:
林剑
时间:
2012-11-8 16:14
本帖最后由 林剑 于 2012-11-8 16:15 编辑
for(int j=2;j<Math.sqrt(i);j++)//
Math.sqrt(i)就是i开根号,要判断一个数是否是素数只要判断它是否能被1和它自身以外的整数整除,for(int j=2;j<=i;j++)用这句话替代原来的循环语句也是没有问题的,用Math.sqrt(i)主要是减少计算量而已
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2