赞
踩
试题 D: 质数
本题总分:10 分
【问题描述】
我们知道第一个质数是 2、第二个质数是 3、第三个质数是 5……请你计算
第 2019 个质数是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
从2开始遍历所有,每遇到一个质数count++,直到count==2019时结束,判断是不是质数我们需要把这个数除以小于自身的所有数,如果这个过程中有一个能除尽,则证明不是素数,返回false。
注
2,3是特殊的,他们两个的开方是1点几所以不参与循环直接返回true
x值太大,所以用到了math.sqrt开方
- package 第十届省赛;
-
- public class 质数 {
-
- // 我们知道第一个质数是 2、第二个质数是 3、第三个质数是 5……请你计算
- // 第 2019 个质数是多少?
- public static void main(String[] args) {
- int count = 0;
- for (int i = 2;; i++) {
- if (f(i)) {
- count++;
- }
-
- if (count == 2019) {
- System.out.println(i);
- break;
- }
- }
-
- }
-
- private static boolean f(int x) {
- //2和3的开方是1点几所以就直接略过循环直接返回true
- for (int j = 2; j <=Math.sqrt(x); j++) {//素数判断公式,因为x太大所以需要开方
- if (x%j==0) {
- return false;
- }
- }
-
-
- return true;
- }
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。