黑马程序员技术交流社区

标题: 编程打印所有的2位质数,质数特点:只能被1和其本身整除.. [打印本页]

作者: kapp_tolo    时间: 2015-3-31 13:57
标题: 编程打印所有的2位质数,质数特点:只能被1和其本身整除..
编程打印所有的2位质数,质数特点:只能被1和其本身整除;求分享思路,
现在我只是知道利用了for循环,其他思路没有,希望大神们分享思路。
作者: JarryHorse    时间: 2015-3-31 18:43
本帖最后由 JarryHorse 于 2015-3-31 18:52 编辑
  1. <blockquote><div class="blockcode"><blockquote>class ZhiShu
  2. {
  3.         public static void main(String [] args)
  4.         {
  5.                 int x,y,tag;
  6.                
  7.                 //定义x从11到99进行单数遍历(这里双数没有质数),x每次加2
  8.                 for(x=11;x<=99;x+=2)
  9.                 {       
  10.                         //定义tag作为标识(也可以定义成boolean类型的)
  11.                         //记得每次循环判断新的x值时初始化一下tag标记
  12.                         tag=0;

  13.                         //定义y,用x取余y为0说明可以被整除,在y小于x范围内找有没有能整除的,有则说明x不是质数,改变tag标记
  14.                         //for(y=2;y<Math.sqrt(x)&&tag==0;y++)//根据质数的规律,这个可以算到根号x,会高效一点
  15.                         for(y=2;y<x&&tag==0;y++)
  16.                         {
  17.                                 if(x%y==0)
  18.                                 {
  19.                                         tag=1;
  20.                                         break;//有能整除的已经说明x不是质数了,不用再循环判断x了,直接跳出
  21.                                 }
  22.                         }
  23.                                 //最后判断tag是否被改变,没有改变则说明没有哪个整数能整除x,则x是质数,把x打印出来
  24.                                 if(tag==0)
  25.                                 System.out.print(x+"\t");               
  26.                 }
  27.                
  28.         }
  29. }
复制代码

哥们儿请看
作者: kapp_tolo    时间: 2015-4-2 11:46
谢谢,谢谢,正在看,,谢谢。。伙伴。。。:hug:
作者: kapp_tolo    时间: 2015-4-2 15:40
JarryHorse 发表于 2015-3-31 18:43
哥们儿请看


谢谢,谢谢,正在看,,谢谢。。伙伴。。。,还想问一下,tag判断是一种基于思想的操作吗,是一种思想或者思维方式吗,。
作者: JarryHorse    时间: 2015-4-2 18:27
kapp_tolo 发表于 2015-4-2 15:40
谢谢,谢谢,正在看,,谢谢。。伙伴。。。,还想问一下,tag判断是一种基于思想的操作吗,是一种思想或 ...

嗯···这样说来也算是吧,很多地方都会用到这种标记判断的方式,接触多了这种思想就慢慢形成了,以后一遇到这种类型的问题,你就会想到定义标记了
作者: 呐拽    时间: 2015-4-2 22:11
这种题,就是先便利然后在判断。for 是最直接最简单的选择!
作者: Sylvanas    时间: 2015-4-3 09:08
这个思路就是质数只能被1和自己整除,那么循环就定在i=2;i<n;i++,然后如果这中间的任何一个数可以整除n,那么n就不是质数,就可以跳出循环了,否则输出该数.
作者: kapp_tolo    时间: 2015-4-4 00:49
我已经把它封装成工具类了,有要的同学木。
作者: kapp_tolo    时间: 2015-4-4 00:56
快来呀,快来呀,想睡觉了。。拜拜。。明天见。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2