当前位置: 首页 > news >正文

筛质数(暴力法、埃氏筛、欧拉筛)

筛质数(暴力法、埃氏筛、欧拉筛)

暴力法

思路分析:

直接双for循环来求解质数
如果不设置标记只是简单地执行了break会导致内部循环(由j控制)而不是立即打印i或者跳过它。如果打印语句写到内部循环中,也会导致每个
非素数也被打印出来多次(在找到其因子之前)。

code:

#include <iostream>
using namespace std;
int n;
int main() {cin >> n;for (int i = 2; i <= n; i++) { // 从2开始,因为1不是素数bool isprime = true; // 假设i是素数for (int j = 2; j * j <= i; j++) { // 只需要检查到sqrt(i),因为如果i有一个大于sqrt(i)的因子,那么它必然还有一个小于或等于sqrt(i)的因子if (i % j == 0) {isprime = false; // 如果找到一个因子,则i不是素数break;}}if (isprime) { // 如果i是素数,则打印它cout << i << " ";}}return 0;
}

埃氏筛

思路分析:

如果一个数是素数,那么它的倍数就不是素数

code:

#include <iostream>
using namespace std;
int main(){int p[100010]={1,1};//f[i]=1代表不是素数int n;cin>>n;for(int i=2;i<=n;i++){if(p[i]==1) continue;for(int j=2;i*j<=n;j++){p[i*j]=1;}}for(int i=1;i<=n;i++){if(p[i]==0){cout<<i<<' ';}}
}

欧拉筛

思路分析:

基本思想:确保每个数只被其除1以外的最小质因数标记。
实现:<需要一个数组把它存储起来,
逆向思考:从最大因数开始找到最小的质因数,
在处理一个数时,需要遍历所有已经找到的质数,并当该质数是当前数的因数时退出循环,这是因为对于更大的数,当前数已不再是其最大的因数,无需继续处理。>

code:

#include <iostream>
using namespace std;
int main(){int d=0;int p[10010]={0};int f[10010]={1,1};int n;cin>>n;for(int i=2;i<=n;i++){if(f[i]==0){//如果没有被标记过,那么i是质数p[d++]=i;//先运行后加}for(int j=0;j<d;j++){if(p[j]*i<=n){//标记以i为最大因数的数不是素数f[p[j]*i]=1;}else{break;}if(i%p[j]==0){//如果p[j]是i的因数,那么后面的数都不是以i为最大因数的break;}}}for(int i=0;i<d;i++){cout<<p[i]<<' ';}
}

如果 i 能够被 p[j] 整除(即 i % p[j] == 0),那么说明 p[j] 是 i 的一个因数。由于我们已经用 p[j] 标记了所有小于或等于n的 p[j] 的倍数,所以没有必要再用更大的质数去标记 i 的倍数。因此,可以跳出内层循环。

相关文章:

筛质数(暴力法、埃氏筛、欧拉筛)

筛质数&#xff08;暴力法、埃氏筛、欧拉筛&#xff09; 暴力法 思路分析&#xff1a; 直接双for循环来求解质数 如果不设置标记只是简单地执行了break会导致内部循环(由j控制)而不是立即打印i或者跳过它。如果打印语句写到内部循环中&#xff0c;也会导致每个 非素数也被打…...

使用USI作为主SPI接口

代码; lcd_drive.c //***************************************************************************** // // File........: LCD_driver.c // // Author(s)...: ATMEL Norway // // Target(s)...: ATmega169 // // Compiler....: AVR-GCC 3.3.1; avr-libc 1.0 // // D…...

AI播客下载:Eye on AI(AI深度洞察)

"Eye on A.I." 是一档双周播客节目&#xff0c;由长期担任《纽约时报》记者的 Craig S. Smith 主持。在每一集中&#xff0c;Craig 都会与在人工智能领域产生影响的人们交谈。该播客的目的是将渐进的进步置于更广阔的背景中&#xff0c;并考虑发展中的技术的全球影响…...

Flink 窗口触发器

参考&#xff1a; NoteWarehouse/05_BigData/09_Flink(1).md at main FGL12321/NoteWarehouse GitHub Flink系列 9. 介绍 Flink 窗口触发器、移除器和延迟数据等 | hnbian https://github.com/kinoxyz1/bigdata-learning-notes/blob/master/note/flink/Window%26%E6%97%B6…...

Java面试题:解释线程间如何通过wait、notify和notifyAll方法进行通信

在 Java 中&#xff0c;线程间的通信可以通过 wait()、notify() 和 notifyAll() 这三个方法实现。这些方法是 Java 线程 Thread 类的一部分&#xff0c;它们与 synchronized 关键字一起使用&#xff0c;以实现线程间的协调。 基本概念 wait()&#xff1a;当一个线程执行到 wa…...

【机器学习 复习】第9章 降维算法——PCA降维

一、概念 1.PCA &#xff08;1&#xff09;主成分分析&#xff08;Principal ComponentAnalysis&#xff0c;PCA&#xff09;一种经典的线性降维分析算法。 &#xff08;2&#xff09;原理&#xff0c;这里以二维转一维为例&#xff0c;原来的平面变成了一条直线 这是三维变二…...

Ubuntu系统docker gpu环境搭建

Ubuntu系统dockergpu环境搭建 安装步骤前置安装安装指定版本的依赖包用docker官方脚本安装Docker-ce添加稳定仓库和GPG秘钥更新源 安装docker安装nvidia-docker2重启docker服务阿里云镜像加速 相关命令网络 docker常用命令镜像容器 docker相关问题解决方案使用wsl时docker的容器…...

网络安全-如何设计一个安全的API(安全角度)

目录 API安全概述设计一个安全的API一个基本的API主要代码调用API的一些问题 BasicAuth认证流程主要代码问题 API Key流程主要代码问题 Bearer auth/Token auth流程 Digest Auth流程主要代码问题 JWT Token流程代码问题 Hmac流程主要代码问题 OAuth比较自定义请求签名身份认证&…...

微积分-导数1(导数与变化率)

切线 要求与曲线 C C C相切于 P ( a , f ( a ) ) P(a, f(a)) P(a,f(a))点的切线&#xff0c;我们可以在曲线上找到与之相近的一点 Q ( x , f ( x ) ) Q(x, f(x)) Q(x,f(x))&#xff0c;然后求出割线 P Q PQ PQ的斜率&#xff1a; m P Q f ( x ) − f ( a ) x − a m_{PQ} \…...

最新PHP仿猪八戒任务威客网整站源码/在线接任务网站源码

资源介绍 老规矩&#xff0c;截图为亲测&#xff0c;前后台显示正常&#xff0c;细节功能未测&#xff0c;有兴趣的自己下载。 PHP仿猪八戒整站源码下载&#xff0c;phpmysql环境。威客开源建站系统&#xff0c;其主要交易对象是以用户为主的技能、经验、时间和智慧型商品。经…...

Windows安装配置jdk和maven

他妈的远程连接不上公司电脑&#xff0c;只能在家重新配置一遍&#xff0c;在此记录一下后端环境全部配置 Windows安装配置JDK 1.8一、下载 JDK 1.8二、配置环境变量三、验证安装 Windows安装配置Maven 3.8.8一、下载安装 Maven并配置环境变量二、设置仓库镜像及本地仓库三、测…...

电子SOP实施(MQTT协议)

架构图 服务与程序 用docker启动mqtt broker(服务器) 访问&#xff1a;http://192.168.88.173:18083/#/dashboard/overview 用户名&#xff1a;admin 密码&#xff1a;*** 消息发布者(查找sop的url地址&#xff0c;发布出去) 修改url&#xff0c;重新发布消息 import ran…...

【Unity导航系统】Navigation组件的概念及其使用示例

Unity中的NavMeshObstacle组件是一个用于动态障碍物的组件&#xff0c;它可以实时地影响导航网格&#xff08;NavMesh&#xff09;。当游戏对象附加了NavMeshObstacle组件时&#xff0c;它可以在AI进行路径规划时被识别为障碍物&#xff0c;从而让AI避开这些动态变化的障碍。 …...

vue-cli 根据文字生成pdf格式文件 jsPDF

1.安装jspdf npm install jspdf --save 2.下载ttf格式文件 也可以用C:\Windows\Fonts下的字体文件&#xff0c;反正调一个需要的ttf字体文件就行&#xff0c;但有的字体存在部分字体乱码现象 微软雅黑ttf下载地址&#xff1a; FontsMarket.com - Download Microsoft YaHei …...

【嵌入式DIY实例】-Nokia 5110显示DS3231 RTC数据

Nokia 5110显示DS3231 RTC数据 文章目录 Nokia 5110显示DS3231 RTC数据1、硬件准备与接线2、代码实现本文将介绍如何使用 ESP8266 NodeMCU 板和 DS3231 RTC 模块制作一个简单的数字实时时钟,其中可以使用连接到 NodeMCU 的两个按钮设置时间和日期,并将它们打印在诺基亚 5110 …...

【十三】图解mybatis缓存模块之装饰器模式

图解mybatis缓存模块之装饰器模式 简介 之前有写过一篇博客介绍过mybatis的缓存模块设计【九】mybatis 缓存模块设计-CSDN博客 &#xff0c;当时着重讲解的是mybatis种一级缓存和二级缓存&#xff0c;本次博客补充讲解一下装饰器模式的应用&#xff0c;本篇主要分两部分讲解&a…...

字节大神强推千页PDF学习笔记,弱化学历问题,已拿意向书字节提前批移动端!

主要问java&#xff0c;以及虚拟机&#xff0c;问了一点android 1.实习项目有关的介绍以及问题回答 2.反射与代理的区别&#xff0c;动态代理&#xff0c;静态代理&#xff0c;二者的区别&#xff0c;以及代理模式的UML图 3.字节码技术 4.虚拟机的双亲委派&#xff0c;以及好…...

Python爬虫-贝壳二手房“改进版”

前言 本文是该专栏的第31篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏之前的文章《Python爬虫-贝壳二手房》中,笔者有详细介绍,基于python爬虫采集对应城市的二手房数据。 而在本文,笔者将基于该项目案例的基础上,进行一个项目代码的“改进版”。 具体实…...

zookeeper学习、配置文件参数详解

zookeeper学习、配置文件参数详解 zookeeper 配置文件参数详解tickTime 、session 的过期时间、maxSessionTimeout 三者之间的关系initLimit&#xff0c;syncLimit什么区别minSessionTimeout 默认值,**他的单位是ms** zookeeper 配置文件参数详解 ZooKeeper 是一个分布式协调服…...

SVG 模糊效果

SVG 模糊效果 SVG(Scalable Vector Graphics,可缩放矢量图形)是一种基于XML的图像格式,用于描述二维图形。它是一种矢量图形格式,因此可以无限放大而不失真。SVG广泛应用于网页设计、动画制作和图形编辑等领域。本文将介绍SVG中一种特殊的效果——模糊效果,以及如何使用…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...