- /*
- 需求:打印出1到100之间所有的质数;每十个打印一行。
- 思路:1、质数num就是不能被1和它本身以外的任何数整除,即num%小于num/2的数值不为0;
- 2、首先,因为1不是质数,而且任何数都能被1整除要遍历1到100的数;
- 当遍历到某个数时,要判断其是否为质数;
- 3、判断一个数num是否为质数的方法是:首先要遍历从2到num/2的数,如果遍历到
- 能被num整除的数(模为0),则num不是质数,否则num就是质数;
- 4、根据第3步,在遍历从2到num/2时,需要一个if...else语句,if里要需要一个break语句,
- 当遍历到能被num整除的数时,来跳出当前循环;else语句是当确定num为质数时才执行,
- 所以可以用计数器count记录住,即count++。
- 5、因为要每十个打印一行,(如果学习了数组的话,就可以把质数添加进数组,然后当
- 脚标数+1能整除十的时候进行换行);现在要通过用一个boolean值记录住,然后通过
- if语句,为真时打印这个数,而且当count能整除10时就换行。
- */
- class Prime
- {
- public static void main(String[] args)
- {
- int count=0; //用于记录质数的个数,以及质数出现的顺序
- boolean prime=true;
- for(int num=2;num <= 100; num++)//遍历2到100的数,即num
- {
- for(int x=2;x <= num/2; x++)//遍历2到num/2的数,即x,用于除num,能整除则num不是质数,反之则是质数
- {
- if(num%x==0) //num有能整除的数,即该num不是质数
- {
- prime=false; //确定num不是质数,不用再遍历该2到该num的数
- break;
- }
- else //num是质数,用count记录住质数出现的个数,而个数等于该质数出现的顺序
- {
- prime=true;
- }
- }
- if(prime) //prime为boolean型变量,上面已经判断出prime为true时,num为质数
- {
- count++;
- System.out.print(num+"\t");
- if(count%10==0) //count为10的倍数时,换行。
- {
- System.out.print("\n");
- }
- }
- }
- }
- }
复制代码
|
|