求素数:只能被1和他本身整除的数叫做素数
求解思路,用循环方法验证从2~n-1这些数能不能被n整除,如果能就不是素数,如果不能就是素数
求解思路,用循环方法验证从2~n-1这些数能不能被n整除,如果能就不是素数,如果不能就是素数
但是不需要验证到n-1 ,只需要验证到n/2 因为超过这个数的一半,就肯定不能被整除了,节约了循环次数
package alg3yue6;
public class PrimeNumble {
public static void main(String[] args)
{
//定义一个标记 ,是素数标记true 不是素数标记false
boolean sign ;
//记录打印素数的个数
int iCount = 0;
//外层循环是取出每个要验证的数
for(int i = 3 ; i<= 100 ; i++)
{
//必须在这里没循环一个数标记一次,默认都是素数,但是判断出来某个数不是素数,就拉黑筛选掉
sign =true;
//内层循环是取出除了1和他本身的数字,验证能不能被这个n整除
for(int j = 2; j<=i/2; j++)
{
//如果其中一个除数能整除i ,sign标记为false ,内层循环退出 ,开始执行外层循环验证下一个数字
//说明不是素数,标记改成false
if(i%j==0)
{
sign = false;
//退出本次内层循环,外层循环体内代码继续往下面执行
break;
}
}
//如果标记是true,说明是素数,打印出来
if(sign)
{
System.out.print(i+" ");
//打印一个就加一下,++可以用在任何地方,不单单是循环
iCount++;
//打印完6个就换行
if(iCount%6 == 0)
{
System.out.println();
}
}
/*
* 如果换行循环放在这里,即使不是素数,也打印换行了,会有很多空格
if(iCount%6 == 0)
{
System.out.println();
}*/
}
}
}
思路图