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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编程打印所有的2位质数,质数特点:只能被1和其本身整除;求分享思路,
现在我只是知道利用了for循环,其他思路没有,希望大神们分享思路。

8 个回复

正序浏览
快来呀,快来呀,想睡觉了。。拜拜。。明天见。
回复 使用道具 举报
我已经把它封装成工具类了,有要的同学木。
回复 使用道具 举报
这个思路就是质数只能被1和自己整除,那么循环就定在i=2;i<n;i++,然后如果这中间的任何一个数可以整除n,那么n就不是质数,就可以跳出循环了,否则输出该数.
回复 使用道具 举报
这种题,就是先便利然后在判断。for 是最直接最简单的选择!
回复 使用道具 举报
kapp_tolo 发表于 2015-4-2 15:40
谢谢,谢谢,正在看,,谢谢。。伙伴。。。,还想问一下,tag判断是一种基于思想的操作吗,是一种思想或 ...

嗯···这样说来也算是吧,很多地方都会用到这种标记判断的方式,接触多了这种思想就慢慢形成了,以后一遇到这种类型的问题,你就会想到定义标记了
回复 使用道具 举报


谢谢,谢谢,正在看,,谢谢。。伙伴。。。,还想问一下,tag判断是一种基于思想的操作吗,是一种思想或者思维方式吗,。
回复 使用道具 举报
谢谢,谢谢,正在看,,谢谢。。伙伴。。。:hug:
回复 使用道具 举报
本帖最后由 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. }
复制代码

哥们儿请看
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马