蓝桥杯之找素数(填空题+编程题)

 强烈推荐先看一下这篇蓝桥杯之素数及相关判断方法(看这一篇就够了)_冷兮雪的博客-CSDN博客

目录

一、找素数(填空题)

 1、题目

 2、题目解读

 3、代码

 二、找素数(编程题)

1、题目

2、题目解读 

 3、代码

一、找素数(填空题)


找素数 - 蓝桥云课 (lanqiao.cn)

 1、题目

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

素数就是不能再进行等分的整数。比如:7,117,11。而 99 不是素数,因为它可以平分为 33 等份。一般认为最小的素数是22,接着是 3,5,...3,5,...

请问,第 100002100002(十万零二)个素数是多少?

请注意:“2” 是第一素数,“3”是第二个素数,依此类推。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

 2、题目解读

看题目就是让我们找到第100002个素数,题目所给的最大运行时间为1s,可以使用任意一种找素数的方法。 看了我之前那篇文章就知道,有关找寻素数的方法有五种,那我就用这道题目来让大家直观明了的比较比较其中三种方法运行速度。

 3、代码

public class 找素数tkt {
    //欧拉筛法(埃氏筛法的优化版)
    public static void eulerSieve(int n){
        boolean[] isPrime = new boolean[50*n];
        int[] Prime=new int[n];//存放素数的数组,false为素数
        isPrime[0] = isPrime[1] = true;//数字0和1都不是素数,所以赋true
        int count = 0;

        for (int i = 2; i <50*n; i++) {
            if (count==100002)
                break;
            if (!isPrime[i])//若当前数是素数
                Prime[count++] = i;//则存入素数数组
            for (int j = 0; j < count && Prime[j
  • 46
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 51
    评论
评论 51
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱编程的林兮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值