A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sandra_bae 中级黑马   /  2015-5-1 18:50  /  918 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. 需求:打印出1到100之间所有的质数;每十个打印一行。

  3. 思路:1、质数num就是不能被1和它本身以外的任何数整除,即num%小于num/2的数值不为0;
  4.       2、首先,因为1不是质数,而且任何数都能被1整除要遍历1到100的数;
  5.          当遍历到某个数时,要判断其是否为质数;
  6.       3、判断一个数num是否为质数的方法是:首先要遍历从2到num/2的数,如果遍历到
  7.          能被num整除的数(模为0),则num不是质数,否则num就是质数;
  8.       4、根据第3步,在遍历从2到num/2时,需要一个if...else语句,if里要需要一个break语句,
  9.          当遍历到能被num整除的数时,来跳出当前循环;else语句是当确定num为质数时才执行,
  10.          所以可以用计数器count记录住,即count++。
  11.       5、因为要每十个打印一行,(如果学习了数组的话,就可以把质数添加进数组,然后当
  12.          脚标数+1能整除十的时候进行换行);现在要通过用一个boolean值记录住,然后通过
  13.          if语句,为真时打印这个数,而且当count能整除10时就换行。             
  14. */
  15. class Prime
  16. {
  17.         public static void main(String[] args)
  18.         {
  19.                 int count=0;                                //用于记录质数的个数,以及质数出现的顺序
  20.                 boolean prime=true;                       

  21.                 for(int num=2;num <= 100; num++)//遍历2到100的数,即num
  22.                 {
  23.                         for(int x=2;x <= num/2; x++)//遍历2到num/2的数,即x,用于除num,能整除则num不是质数,反之则是质数
  24.                         {
  25.                                 if(num%x==0)                        //num有能整除的数,即该num不是质数
  26.                                 {
  27.                                         prime=false;                //确定num不是质数,不用再遍历该2到该num的数
  28.                                         break;
  29.                                 }
  30.                                 else                                        //num是质数,用count记录住质数出现的个数,而个数等于该质数出现的顺序
  31.                                 {
  32.                                         prime=true;
  33.                                 }
  34.                         }
  35.                         if(prime)                                        //prime为boolean型变量,上面已经判断出prime为true时,num为质数
  36.                         {
  37.                                 count++;
  38.                                 System.out.print(num+"\t");
  39.                                 if(count%10==0)                        //count为10的倍数时,换行。
  40.                                 {
  41.                                         System.out.print("\n");
  42.                                 }               
  43.                         }
  44.                 }
  45.         }
  46. }
复制代码


4 个回复

倒序浏览
这么清晰!!
回复 使用道具 举报
不错                          
回复 使用道具 举报
嗯 很简单的题目!!!!!
回复 使用道具 举报
yelebron 发表于 2015-5-1 22:16
嗯 很简单的题目!!!!!

额,有点水~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马