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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

/*求质数的思路:质数的定就是:只能被1和他自己整除的数。
*        步骤:1定义一个for循环,里面定义两个变量,一个表示:他能被多少个整数整除,另一个表示:要遍历的被除数;
*            2再定义一个for循环,变量要被整数除 的除数。
*            3判断被除数能被多少了整数整除
*            4当只能被一个数整除的时候,就是素数。*/
public class suShu_Demo1 {
        public static void main(String[] args) {
                //循环被除数,
          for(int count=0,i=2;i<100;i++){
                  //循环除数
                    for(int k=2;k<=i;k++){
                            //判断能被几个数整除
                          if(i%k==0)
                                  count++;}
                    //当只能被一个数整除的时候就是素数,这个数就是他本身。
                          if(count==1)
                                  System.out.println(i);
                          count=0;
         
        }
}
}  

评分

参与人数 1黑马币 +1 收起 理由
masai158 + 1 你没黑马币拉。送你一个

查看全部评分

25 个回复

倒序浏览
赞一个!!
回复 使用道具 举报
看看!!!!!!!!!
回复 使用道具 举报
循环除数那里k<i/2或者k<=Math.sqrt(i)好点吧= =不必到i这么多
回复 使用道具 举报

这代码的思想是只能被自己整除,向你说的那样写,就不能实现了。这种写法最简单。
回复 使用道具 举报
java—family 发表于 2014-8-20 12:40
这代码的思想是只能被自己整除,向你说的那样写,就不能实现了。这种写法最简单。 ...

开始没看后面= =写法简单  但是效率相对来说比较慢{:3_55:}
回复 使用道具 举报
华谦 中级黑马 2014-8-20 17:09:36
7#
恩,还看得懂
回复 使用道具 举报
路过~~~~
回复 使用道具 举报
看看~~~~
回复 使用道具 举报
我就看看,我不说话。。。
回复 使用道具 举报
到sqrt(i),count++ 也行啊,这个一直判断到最后效率低
回复 使用道具 举报
伊甸拾忆 来自手机 中级黑马 2014-8-20 20:30:00
12#
导入的包是什么意思?
回复 使用道具 举报
伊甸拾忆 发表于 2014-8-20 20:30
导入的包是什么意思?

那个类我写过其他代码。
回复 使用道具 举报
单线程xia 发表于 2014-8-20 19:55
到sqrt(i),count++ 也行啊,这个一直判断到最后效率低

把你改进的代码看看。现在的计数机,运算速度快。
回复 使用道具 举报
  1. /*第七题:7、 编程打印所有的3位质数,质数特点:只能被1和其本身整除
  2. *
  3. *
  4. *
  5. *
  6. */
  7. package com.itheima;

  8. public class Text7 {

  9.         public static void main(String[] args) {
  10.                  int shu;//
  11.                  int xx;
  12.                 for (shu = 1; shu < 1000; shu++) {//遍历1到999所有的数
  13.                         for (xx = 2; xx <= shu / 2; xx++) {//遍历所有的除数。为了效率除数只取到被除数一半
  14.                                 if (shu % xx == 0)//如果有能被整出的跳过打印这个数
  15.                                         break;

  16.                         }
  17.                         if (xx > shu / 2) {//如果被除数到遍历完了则说明这个数是质数,打印即可
  18.                                 System.out.print(shu + ",");//为了方便阅读中间用,分割
  19.                         }
  20.                 }
  21.         }
  22. }
复制代码
回复 使用道具 举报 1 0
import是啥意思
回复 使用道具 举报
这是最简单的思路,但是效率不高。。
回复 使用道具 举报
设置一个布尔变量控制判断会更简单
回复 使用道具 举报
{:2_34:}  wo 是不是傻了。我既然在前几天做了一个梦。就是这个时候。这个时间。我在看你的算法题。 - -!!!!然后你的头像还不是你。。。真的要闯到鬼了
回复 使用道具 举报

其实只要遍历到shu的开平方就行  大于shu的开平方做的比较都是无意义的
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马