算法通关村第十三关-黄金挑战数论问题

计数质数

描述 :

给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。

题目 :

LeetCode 204.计数质数 : 

204. 计数质数

分析 :

解决这个题有一个有效的方法,叫埃氏筛 , 后来又产生了线性筛,奇数筛等改进的方法。

基本思想是如果 x是质数,那么大于 的 xy 的倍数 2x.3x..一定不是质数,因此我们可以从这一点入手。如下图所示:

我们先选中数字2,2是素数,然后将2的倍数全部排除 (在数组里将该位置标记为0就行了)

接着我们选中数字3,3是素数,然后将3的倍数全部排除

接着我们选择数字5,5是素数,然后将5的倍数全部排除。

接着我们选择 7,11,13一直到 n,为什么 4、6、8、9 ...不会再选择了呢?  因为我们已经在前面的步骤中,将其变成0了。所以实现代码如下:

解析 :

class Solution {public int countPrimes(int n) {if(n <= 1){return 0;}int count = 0;int[] arr = new int[n];Arrays.fill(arr,1);for(int i = 2 ;i < n ;i++){if(arr[i] == 1){count++;if((long) i * i < n){for(int j = i * i ; j < n;j += i){arr[j] = 0;}}}}return count;}
}

这期就到这里 , 下期见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/196579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

12.04 二叉树中等题

513. 找树左下角的值 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1 思路&#xff1a;找到最低层中最左侧的节点值&#xff0c;比较适合层序遍历&#xff0c;返回最…

【动态规划】LeetCode-198/LCR089.打家劫舍

&#x1f388;算法那些事专栏说明&#xff1a;这是一个记录刷题日常的专栏&#xff0c;每个文章标题前都会写明这道题使用的算法。专栏每日计划至少更新1道题目&#xff0c;在这立下Flag&#x1f6a9; &#x1f3e0;个人主页&#xff1a;Jammingpro &#x1f4d5;专栏链接&…

MS85163实时时钟/日历可Pin to Pin兼容PCF8563

MS85163/MS85163M是一款CMOS实时时钟(RTC) 和日历电路&#xff0c;针对低功耗进行了优化&#xff0c;内置了可编程的时钟输出、中断输出和低电压检测器。可Pin to Pin兼容PCF8563。所有寄存器地址和数据都通过两线双向I 2C总线进行串行传输&#xff0c;最大总线传输速度为 400k…

2023年【上海市安全员C3证】新版试题及上海市安全员C3证试题及解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 上海市安全员C3证新版试题是安全生产模拟考试一点通总题库中生成的一套上海市安全员C3证试题及解析&#xff0c;安全生产模拟考试一点通上上海市安全员C3证作业手机同步练习。2023年【上海市安全员C3证】新版试题及上…

干货分享:盘点8款优秀的自动化测试工具

如今&#xff0c;作为一名软件测试工程师&#xff0c;几乎所有人都需要具备自动化测试相关的知识&#xff0c;并且懂得如何去利用工具&#xff0c;来为企业减少时间成本和错误成本。这是为什么呢&#xff1f; 在以前&#xff0c;测试人员一般都只需要扮演终端用户&#xff0c;…

CV计算机视觉每日开源代码Paper with code速览-2023.11.29

点击CV计算机视觉&#xff0c;关注更多CV干货 论文已打包&#xff0c;点击进入—>下载界面 点击加入—>CV计算机视觉交流群

用Python创建日历详细指南与实用示例

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是彭涛&#xff0c;今天为大家分享 用Python创建日历详细指南与实用示例&#xff0c;全文4800字&#xff0c;阅读大约15分钟。 在日常生活和工作中&#xff0c;创建和管理日历是一项关键任务。Python提供了丰富…

【ArcGIS Pro微课1000例】0047:深度学习--棕榈树提取全流程

一、创建训练样本 对汤加科洛瓦伊种植园每棵棕榈树的健康状况进行清查和评估,这需要花费大量的时间和劳动力。 为简化此过程,将在 ArcGIS Pro 中使用深度学习模型来识别树木,然后根据植被绿度的测量值计算其健康状况。 第一步是找到显示汤加科洛瓦伊的影像,该影像具有足够…

无需服务器,无需魔法,拥有一个微信机器人就是这么简单

前情提要 还没看过的朋友可以看一下上一篇文章《拥有一个微信机器人总共需要几步&#xff1f;》在这篇文章里&#xff0c;我们提到&#xff0c;创建微信机器人需要一个大前提--你得有一台服务器。现在&#xff0c;不再需要了&#xff01;没错&#xff0c;上一篇提到的Serverles…

创建测试库和测试表

-- 创建测试库 create database integration_fusion default character set utf8mb4 collate utf8mb4_general_ci; USE integration_fusion; SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0; -- 创建测试表 DROP TABLE IF EXISTS demo; CREATE TABLE demo ( id bigint NO…

巧借C++算法实现冒泡排序算法

目录 引言冒泡排序原理具体实现步骤示例代码时间复杂度和稳定性优化可能性结束语 引言 作为计算机专业出身的开发者&#xff0c;以及从事软件开发相关的小伙伴&#xff0c;想必对C语言并不陌生&#xff0c;它是一门非常厉害的编程语言&#xff0c;不仅是基于程序底层的语言&a…

JavaSE基础50题:9. 求1~100内的所有素数

【概述】 素数&#xff1a;只能被1和自己整除。 素数的判断方法&#xff1a; 我们把非素数都写成 ab 的形式&#xff0c;如&#xff1a; 16 116 16 28 24 124 24 212 24 38 24 46 同样&#xff0c;我们发现&#xff0c;a 和 b 其中一定会有一个数字 < 根号n&#xff0…

SIT2596,可替代LM2596,40V 输入 150KHz 3A 降压型电源转换器

SIT2596 是一款降压型开关电压调节芯片&#xff0c;可固定输出 3.3V、5V、12V&#xff0c;也可根据需要调节 输出电压&#xff0c;电压输出范围在 1.2V-37V&#xff0c;输入电压最高可达 40V,输出电流可达 3A;同时具有优异 的线性调整率和负载调整率。 SIT2596 内部集成频率…

三次握手四次挥手

第一次握手 A 创建本地的传输控制模块 TCB&#xff0c;然后创建一个 TCP 报文段&#xff0c;报文段中&#xff1a; SYN 1 同步控制位&#xff08;1 时候不能携带数据&#xff09; seq x&#xff1b;序号&#xff0c;供 B 确认 由于此时 SYN 为 1&#xff0c;不能给携带数据&…

Educational Codeforces Round 159(div2) --- E. Collapsing Strings-- 题解

目录 E. Collapsing Strings 题目大意&#xff1a; 思路&#xff1a; 代码: E. Collapsing Strings Problem - E - Codeforces 题目大意&#xff1a; 给你n个字符串&#xff0c;然后对任意两个字符串进行合并操作&#xff0c; 设两个字符串 a 和 b 的折叠 C(a,b) 是以下…

中危漏洞!小程序优惠卷遍历

进入小程序&#xff0c;因为是一个小商城&#xff0c;所以照例先查看收货地址是否存在越权&#xff0c;以及能否未授权访问&#xff0c;但是发现不存在这些问题&#xff0c;所以去查看优惠卷 进入领券中心&#xff0c;点击领取优惠券时抓包 发现数据包&#xff0c;存在敏感参数…

DevEco Studio将常用内容设为代码模板 通过快捷键调出

有时候 我们开发 可能有一些经常要写的内容 天天CV大法找东西也非常麻烦 我们这里打开编辑器 选择 File下的Settings 打开设置界面 选择 Editor 下的 Live Templates 模板 然后 我们点击右侧加号 然后点第一个 加一个 这里 我们设置 输入 em时会触发提示 内容时 问君能有几…

使用Serv-U FTP服务器共享文件,实现无公网IP环境下远程访问

文章目录 1. 前言2. 本地FTP搭建2.1 Serv-U下载和安装2.2 Serv-U共享网页测试2.3 Cpolar下载和安装 3. 本地FTP发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 科技日益发展的今天&#xff0c;移动电子设备似乎成了我们生活的主角&#xff0c;智能…

每日一题(LeetCode)----字符串--反转字符串

每日一题(LeetCode)----字符串–反转字符串 1.题目&#xff08;344. 反转字符串&#xff09; 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) …

网盘系统设计:万亿 GB 网盘如何实现秒传与限速?

Java全能学习面试指南&#xff1a;https://javaxiaobear.cn 网盘&#xff0c;又称云盘&#xff0c;是提供文件托管和文件上传、下载服务的网站&#xff08;File hostingservice&#xff09;。人们通过网盘保管自己拍摄的照片、视频&#xff0c;通过网盘和他人共享文件&#xff…