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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

分析以下需求,并用代码实现:
        (1)打印1-100之间的所有素数及个数
        (2)每行输出5个满足条件的数,之间用空格分隔
        (3)如果一个大于1的自然数,这个数只能被1和其本身整除,这个数就叫素数。
        (4)如:2 3 5 7 11

7 个回复

倒序浏览
思路:
         a、2是最小的,也是唯一的偶数素数,所以,除了2以外的所有偶数都可以排除
         b、大于1的,并且只能被1和其本身整除的数叫素数,所以,排除所有偶数外,当一个大于1的整数,除以大于1并小于它的所有奇数,只要能被一个整除,那这个整数就可以排除,剩下的就是素数。
回复 使用道具 举报
public class Test {
        public static void main(String[] args) {
               
                int count = 0;
       
                for(int i = 2;i<100;i++) {
                        int temp = (int) Math.sqrt(i);
                        int j = 2;
                        for(;j<=temp;j++) {
                                if(i%j==0){
                                        break;
                                }
                        }
                        if(j>temp) {
                                count++;
                                System.out.print(i+" ");
                                if(count%5==0) {
                                        System.out.println();
                                }
                        }
                }
                System.out.println();
                System.out.println("101-200的素数个数为:"+count);
        }
}
回复 使用道具 举报
yaolv7 发表于 2016-4-15 23:37
思路:
         a、2是最小的,也是唯一的偶数素数,所以,除了2以外的所有偶数都可以排除
         b、大 ...

代码分享下
回复 使用道具 举报

额,要自己想呀....我只能给你个提示

outer: for( ; ; ) {
    for ( ; ; ) {
      if( ) {
        continue outer;
    }
  }
System.out.print("素数");
}

怎么记数换行之类的我就不写了
回复 使用道具 举报
yaolv7 发表于 2016-4-16 22:37
额,要自己想呀....我只能给你个提示

outer: for( ; ; ) {

就是不明白怎么判断是素数,见老师给的参考答案里用了Math.sqrt(),方法,但是不明白原理,所以不想用哪个方法,纠结了
回复 使用道具 举报
yaolv7 中级黑马 2016-4-16 23:09:16
7#
本帖最后由 yaolv7 于 2016-4-16 23:10 编辑
  1. public static void printPrimeNumber(int num){

  2. System.out.print(2 + "\t" );        //2是唯一的偶数素数,先打印输出

  3. outer:for (int i = 3; i < num; i+=2) {
  4. for (int j = 3; j < i; j+=2) {
  5. if (i % j == 0)       
  6. continue outer;        //i 能被小于它的任意一个奇数整除,则排除当前i值
  7. }        //内循环结束
  8. System.out.print(i + "\t");        //若 i 都不被大于1并小于它的所有奇数整除,则为素数,打印输出


  9. }        //外循环结束
复制代码


回复 使用道具 举报
yaolv7 中级黑马 2016-4-16 23:12:01
8#
格式实在是没办法整理,一弄就乱,将就看下吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马