题目:判断101-200之间有多少个素数,并输出所有素数。
首先要知道“素数”的定义,什么才是素数:除了1和本身以外,不能被任何整
数整除的数。
判断一个数是不是素数的算法是:让一个数m被i(i由2变到k=sqrt(m))除,
如果m能够被某一个i(2-k之之间任何一个整数)整除。则m必然不是素数,然后判
断i是否大于k,如果是则说明m没有被在2-k之间的任何一个整数相除;
核心代码:
int i,j,k;
for(i=101;i<200;i++)
{ k= (int)Math.sqrt(i);//数学类的sqrt 其中要使用强制,转换否则会提示损失精度
for (j=2;j<=k;j++)
{
if(i%j==0) //判断是否能被整除,如果能则不是素数,否则就是素数
break;
}
if (j>k) //如果累加的这个j变量大于要比较的k,说明 这个数就是素数
System.out.print(i+"\t");
int count = 0; //添加一个记录变量,累计有多少个素数
for(int p=101; p<200; p+=2)
{
boolean b = false;
for(int t=2; t<=Math.sqrt(p); t++)
{
if(p % t == 0)
{ b = false; break;}
else
{ b = true; }
}
if(b == true)
{count ++;
System.out.print(p+"\t" );}
}
System.out.println( "素数个数是: " + count);