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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

黄文昭

中级黑马

  • 黑马币:18

  • 帖子:92

  • 精华:0

package cn.zhao01;
/*
* 打印1~1000之间的素数:
*  思路:
*  1、素数:一个大于1的自然数,除了1与其本身之外 ,不能被任何其他数整除。
*  2、返回值类型是boolean型
*  3、有一个参数,在1~1000之间,int类型
*  
* 步骤:
*    1、定义一个变量从1~1000进行循环,获得每一个自然数i
*    2、可以定义一个方法用来打印素数,定义另一个变量从2开始到i的平方根处依次整除i,
*       若能被整除,则i是合数,否则i为素数;
*    3、 打印每一个素数,并进行统计。  
*/
public class PrimePrint {
      public static void main(String[] args) {
                                   
              int count = 0;
                                    //统计素数个数
                                    for(int i=1;i<1000;i++){
                                            if(isPrime(i)){
                                                    count++;
                                                    System.out.print(i+" ");
                                                    if(count%10==0){
                                                            System.out.println();//每打印10个数, 就换行
                                                    }
                                            }
                                    }
                                    System.out.println();
                                    System.out.println("在"+1+"和"+1000+"之间共有"+count+"个素数");
                            }
                            //判断素数
                            private static boolean isPrime(int n){
                                    boolean flag = true;
                                    if(n==1)
                                      flag = false;//1既不是素数也不是合数。
                                    else{
                                            for(int i=2;i<=Math.sqrt(n);i++){
                                            if((n%i)==0 || n==1){  
                                                    flag = false;//从2开始判断n能否被其他自然数整除
                                                    break;
                                            }
                                             else
                                               flag = true;
                                      }
                                    }
                                    return flag;
                            }
            }


5 个回复

倒序浏览
写的不错。这道题我也做过,但只是打印了一行,没有加换行。而且我是只在主函数中写的调用方法。其他的全部封装到方法中的。
我只是用自然数除以比他小的所有数,然后如果不存在能整除的数就是素数。没有用到Math中的方法。
回复 使用道具 举报
与用C语言设计的思路方法差不多
回复 使用道具 举报
一到定义标记的时候,我就觉得很高级~
回复 使用道具 举报
学习了。。。。
回复 使用道具 举报
与用C语言设计的思路方法差不多写的不错。这道题我也做过
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马