判断任意范围之间有多少素数

题目:判断101-200之间有多少个素数,并输出所有素数。 
1.程序分析:判断一个数是不是素数:只能被1和本身整除。故从2开始除,不需要到n,也就是循环条件是 < n 就可以,这之间只要被整除了,那么他就不是素数了

质数(prime number)又称素数,有无限个。
质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。

源码如下:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 判断101-200之间有多少个素数,并输出所有素数。
 * 1.程序分析:判断一个数是不是素数:只能被1和本身整除。
 * 故从2开始除,不需要到n,也就是循环条件是 < n 就可以,
 * 这之间只要被整除了,那么他就不是素数了
 *
 * 质数(prime number)又称素数,有无限个。
 * 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。
 * @author point9
 */
public class FindPrimeNumber {
    public static void main(String[] args) {
        System.out.println("该程序可判断x-y之间有多少个素数(包含x,y)");
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入起始数字:");
        int beginNum = scanner.nextInt();
        if (beginNum < 2) {
            System.out.println("起始数字输入不合法,请从新输入起始数字 : ");
            beginNum = scanner.nextInt();
        }
        System.out.println("请输入结束数字:");
        int endNum = scanner.nextInt();
        if (endNum < beginNum) {
            System.out.println("结束数字输入不合法,请从新输入结束数字 : ");
            endNum = scanner.nextInt();
        }
        List<Integer> primeList = getPrimeNumberList(beginNum,endNum);
        System.out.println(beginNum+"-"+endNum+"之间有"+primeList.size()+"个素数,分别为:"+primeList.toString());
    }

    /**
     * 传入一个范围,得到该范围内的所有素数集合
     * @param beginNum
     * @param endNum
     * @return
     */
    private static List<Integer> getPrimeNumberList(int beginNum, int endNum) {
        List<Integer> result = new ArrayList<>();
        for (int i = beginNum; i <= endNum; i++) {
            if (numberIsPrime(i)) {
                result.add(i);
            }
        }
        return result;
    }

    /**
     * 传入任意一个数,判断这个数是否为素数
     * 思路:判断一个数是不是素数:只能被1和本身整除
     * 说明:从2开始除,不需要到n,也就是循环条件是 < n 就可以,这之间只要被整除了,那么他就不是素数了
     * @param num
     * @return
     */
    private static boolean numberIsPrime(int num) {
        for (int i = 2; i < num; i++) {
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }
}

测试截图:


原文地址:http://www.point9.top/index.php/2019/02/17/

点九博客 www.point9.top

点九论坛 bbs.point9.top

点九邮箱 [email protected]


Web全栈技术交流
点击链接加入群聊【Web全栈交流群】:https://jq.qq.com/?_wv=1027&k=5rnUzsF

发布了66 篇原创文章 · 获赞 129 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/Point9/article/details/87541346