本帖最后由 coolmiao13 于 2015-2-12 23:25 编辑
- package com.itheima;
- /**
- *题目:
- * 5、 编程打印所有的3位质数,质数特点:只能被1和其本身整除
- * *@author XXX
- * 思路:审题,什么是质数,只能被自己和1整除。
- * 打印所有的三位质数,就是圈定了一个范围,打印所有的三位数的质数。范围在100与999之间。
- * 写个外循环循环这个三位数,内循环来判断是否是质数。
- * 内循环直接判断1到本身之间的数的取模,不考虑1和本身,模0,那么就做个标记。(后来发现不用,直接下一次外循环就 哦了。)
- * 内循环完,判断标记,如果是质数打印出来。
- */
- public class Test5 {
- public static void main (String[] args){
- new ZhiShu();//第一次跟随思路写出的代码运行结果
- new ZhiShu1();//简化完代码运行的结果
- }
- }
- //
- class ZhiShu {
- ZhiShu (){
- System.out.println("所有的三位质数有:");
- //对100到999进行遍历
- for(int num=100;num<1000;num++)
- {
- int Flg=0;//设置一个旗帜,用来简化代码。
- //从1到本身之间取数,判断是否为质数。
- b:for (int i=2;i<num;i++)
- {
- //System.out.println(i);
- if((num % i) == 0)//取模,如果模为0,那么证明有数字可以整除。这个数不是质数。
- {
- Flg = 1;//对标志赋值,后面判断用
- break b;//跳出内循环
- }
- else
- Flg=0;//如果没有数可以整除,标志为0
- }
- if (Flg==0)//判断标志,为0就是质数进行打印
- {
- System.out.print(num+" ");//由于数字比较多,那么就打印1排好了
- }
- }
- System.out.println();
- }
- }
- /**突然想起来如果用continue,那么代码就会简单很多,省略了标志判断的过程。
- * 简化完的代码,爽爆了。
- */
- class ZhiShu1 {
- ZhiShu1 (){
- System.out.println("简化完代码后,所有的三位质数有:");
- //对100到999进行遍历
- a:for(int num=100;num<1000;num++)
- {
- //从1到本身之间取数,判断是否为质数。
- for (int i=2;i<num;i++)
- {
- //System.out.println(i);
- if((num % i) == 0)//取模,如果模为0,那么证明有数字可以整除。这个数不是质数。
- {
- continue a;//既然不是质数,后面的就不做了,进行下一次外循环。
- }
- }
- System.out.print(num+" ");//内循环计算完,证明这个数是质数。打印质数
- }
- System.out.println();
- }
- }
复制代码 |
|