当时写的太着急了,代码我没整理,所以显得有点乱,大家见谅哈!

使用java,求100以内的质数(素数),做这道题目,有很多种方式!我代码中写了3种,大家可以任选一种!很多公司的面试的时候,笔试的时候很喜欢出这道题目。

(java的面试中很多时候都会考这道题目,不光可以考察多层嵌套循环,还可以考察break、sqrt()函数、小算法、条件判断结构、效率性能等等知识点,而且题目还不算太大,也不算太难,所以大家最好要会写)


package javase;import java.util.Scanner;/** * 求100以内的质数*/
public class PrimeNumber {/** * 求100以内的质数*/public static void main(String[] args) {//求100以内的质数int number = 0;int innerNumber = 0;int count = 0; //100内有多少个质数for (number = 2; number <= 100; number++) {
//          for (innerNumber = 2; innerNumber <= number; innerNumber++) {for (innerNumber = 2; innerNumber <= number; innerNumber++) {if (number % innerNumber == 0 && number != innerNumber) {break;}//如下这种写法也可以
//              if (number == innerNumber) {
//                  System.out.println("质数" + number);
//              }if (number % innerNumber == 0 && number == innerNumber) {count++;System.out.println("第" + count + "个质数=" + number);}}}System.out.println("----------100以内总共有" + count + "个质数!----------");//       test();test2();myFor();}public static void test() {System.out.println("-------------------");int count1 = 0, count2 = 0;for (int i = 5; i <= 20; i++) {// 每一个数一个个接受检验是否为素数for (int j = 2; j <= Math.sqrt(i); j++) {if (i % j != 0) {//不能被整除累计一次count1++;}}// 转为int的类型int num = (int) Math.sqrt(i);//如果累计次数num - 1个数相等则为素数if (count1 == (num - 1)) {System.out.println("素数:" + i);count2++;}// 统计素数个数count1 = 0;}System.out.println(count2);}public static void test2() {Scanner in = new Scanner(System.in);int x;System.out.println(" 请输入要求的素数范围:");// 加入一个提示语句x = in.nextInt();System.out.println(" 2到" + x + "内的素数有:");int i, n;for (i = 2; i <= x; i++){for (n = 2; n <= (int) Math.sqrt(i); n++)// 核心语句:内层变量<=(int)Math.sqrt(外层变量)if (i % n == 0)break;if (n > (int) Math.sqrt(i))//判断是否为素数System.out.print(" " + i);// 输出素数}}public static void myFor() {System.out.println("*************************");for (int i = 1; i <= 5;) {System.out.println("i = " + i);i++;}System.out.println("*************************");for (int i = 1; i <= 5; i++) {System.out.println("i = " + i);}}}

package javase;

import java.util.Scanner;

/**
 * 求100以内的质数

*/
public class PrimeNumber {

/**
    * 求100以内的质数

*/
    public static void main(String[] args) {
        //求100以内的质数
        int number = 0;
        int innerNumber = 0;
        int count = 0; //100内有多少个质数
        for (number = 2; number <= 100; number++) {
//            for (innerNumber = 2; innerNumber <= number; innerNumber++) {
            for (innerNumber = 2; innerNumber <= number; innerNumber++) {
                if (number % innerNumber == 0 && number != innerNumber) {
                    break;
                }
                //如下这种写法也可以
//                if (number == innerNumber) {
//                    System.out.println("质数" + number);
//                }
                
                if (number % innerNumber == 0 && number == innerNumber) {
                    count++;
                    System.out.println("第" + count + "个质数=" + number);
                }
            }
        }
        System.out.println("----------100以内总共有" + count + "个质数!----------");
        
//        test();
        test2();
        myFor();

}
    
    public static void test() {
        System.out.println("-------------------");
        int count1 = 0, count2 = 0;
        for (int i = 5; i <= 20; i++) {
            // 每一个数一个个接受检验是否为素数
            for (int j = 2; j <= Math.sqrt(i); j++) {
                 if (i % j != 0) {
                      //不能被整除累计一次
                      count1++;
                 }
            }
            // 转为int的类型
            int num = (int) Math.sqrt(i);
            //如果累计次数num - 1个数相等则为素数
            if (count1 == (num - 1)) {
                 System.out.println("素数:" + i);
                 count2++;
            }
            // 统计素数个数
            count1 = 0;
        }
        System.out.println(count2);
    }
    
    public static void test2() {
        Scanner in = new Scanner(System.in);
        int x;
        System.out.println(" 请输入要求的素数范围:");// 加入一个提示语句
        x = in.nextInt();
        System.out.println(" 2到" + x + "内的素数有:");
        int i, n;
        for (i = 2; i <= x; i++)
        {
            for (n = 2; n <= (int) Math.sqrt(i); n++)
                // 核心语句:内层变量<=(int)Math.sqrt(外层变量)
                if (i % n == 0)
                    break;
            if (n > (int) Math.sqrt(i))//判断是否为素数
                System.out.print(" " + i);// 输出素数
        }
    }
    
    public static void myFor() {
        
        System.out.println("*************************");
        for (int i = 1; i <= 5;) {
            System.out.println("i = " + i);
            i++;
        }
        System.out.println("*************************");
        for (int i = 1; i <= 5; i++) {
            System.out.println("i = " + i);
            
        }
    }

}

使用java,求100以内的质数(素数)相关推荐

  1. Java 求100以内的质数

    public class TestPrime{public static void main(String[] args){boolean f=true;for(int i=2;i<99;i++ ...

  2. C语言判断一个整数是不是素数(质数)、求100以内的所有素数、求前50个素数

    目录 一.什么是素数(质数 Prime) 二.判断一个整数是不是素数(质数)代码 三.求100以内的所有素数(质数) 四.输出前50个素数(质数) 一.什么是素数(质数 Prime) 质数又称素数.一 ...

  3. 求100以内的质数(Java版定义法、break优化,Math.sqrt()优化)

    说明 第一次写CSDN博客,一方面是记录自己学习复习,另一方面是向各位大牛学习,如有更优的算法,还望不吝赐教. 这是一个入门级的编程问题,常见的是求100以内的质数,这里为了能更好的体现算法的重要性, ...

  4. Java经典例题01:求100以内的所有素数并输出

    求100以内的所有素数并输出. (素数:一个大于1的整数,除了1和它本身外,不能被其他整数整除)           难度指数:★★★           方法:双重循环           解题思路 ...

  5. java语言 判断素数,C语言实现判断一个数是否为素数并求100以内的所有素数

    判断一个数是否为素数 算法思想 设一个正整数x,sqrt(x)为x开平方后的值,若x不为素数,则x=a*b,a,b为2~x-1之间的整数,且当2=< a <= sqrt(x)时,必有sqr ...

  6. java求n以内的质数

    java求n以内的质数 思想 素数即除了1和它本身以外不再有其他因数,最小的素数是2 方法:将n分别与2到(n+1)/2取余,若有一个值为0,则n就不为素数,反之为素数 //打印n以内的质数 // 素 ...

  7. Java输出100以内的质数(及其代码优化详程)

    文章目录 Java输出100以内的质数 重点:<代码的优化> P1:currenttimemillis方法计算运行时间 p2:优化一(针对非质数) p3:Java 中 Math.sqrt( ...

  8. Golang 008. 求100以内的质数

    [基础入门题]Golang 008. 求100以内的质数 求100以内的质数,又称素数,即只能被1和本身整除的整数. ---------------------------- 源代码: package ...

  9. c语言 sqrt求100以内素数,C语言实现判断一个数是否为素数并求100以内的所有素数...

    判断一个数是否为素数 算法思想 设一个正整数x,sqrt(x)为x开平方后的值,若x不为素数,则x=a*b,a,b为2~x-1之间的整数,且当2=< a <= sqrt(x)时,必有sqr ...

  10. 计算100以内最大质数和求100以内的质数

    #计算100以内最大质数 for n in range(100,1,-1):#如果n==2时则最大质数为2if n==2:print('100以内最大质数为2')#判断是否为偶数if n%2==0:c ...

最新文章

  1. Python精讲Numpy基础,大牛笔记详细解释
  2. 160个Crackme013之投机取巧
  3. mybatis 缓存总结以及遇到的问题
  4. 山东理工OJ【2121】数据结构实验之链表六:有序链表的建立(插排法)
  5. 12 个问题搞懂 Redis
  6. Python_自定义关键字的使用
  7. java markdown转word_一键将 Word 转换为 Markdown
  8. arduino 3d打印机_Firefox OS流视频,使用Arduino销售3D打印机等
  9. 第六章节 三层架构(一. 三层架构的概述)
  10. zone watermark水位控制
  11. 反激变换器matlab仿真变压器demo,反激变换器建模Matlab仿真
  12. Tensorflow2.0之Minist手写数字识别
  13. 永磁同步电机MTPA最大转矩电流比控制仿真(公式法)
  14. mac添加Chrome插件的方法
  15. hdmi怎么支持2k分辨率_27寸2k分辨率的护眼显示器推荐:飞利浦275E9使用测评
  16. 易經大意(7) 三和 韓長庚 著
  17. 【GitHub】项目代码上传github
  18. Cadence Orcad Capture常用的快捷键图文
  19. 未约定保证方式,担保人如何担责
  20. pc端网页的设计尺寸

热门文章

  1. PCWorld:Android游戏业务渐露锋芒
  2. U盘制作DOS启动盘MSDOS 7.10
  3. matlab拟合函数的三种方法
  4. SAP Table 汇总版
  5. 手机怎么用外嵌字幕_iphone 12发布 ! “预购、定金、尾款、换手机”用英语怎么说?...
  6. 计算机毕设(附源码)JAVA-SSM基于JAVA宠物店管理系统
  7. 简谈BOOST升压电路
  8. java毕业生简历_一个18年毕业生的Java简历
  9. 阿里巴巴Java编程规范试题答案
  10. 异速联显示连接服务器失败,异速联客户端登陆时正在连接服务器