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

网站logo如何做清晰如何自建网站接广告

网站logo如何做清晰,如何自建网站接广告,网站开发php有哪些,网站制作公司哪家正规判断质数(素数)及其优化方法 质数是指 大于1的自然数,且 只有1和它本身两个正约数。以下是几种判断方法及其优化策略。 目录 基础方法(试除法)优化1:仅检查到√n优化2:跳过偶数优化3&#xff…

判断质数(素数)及其优化方法

质数是指 大于1的自然数,且 只有1和它本身两个正约数。以下是几种判断方法及其优化策略。


目录

  1. 基础方法(试除法)
  2. 优化1:仅检查到√n
  3. 优化2:跳过偶数
  4. 优化3:6k±1法则
  5. 优化4:筛法预处理
  6. 方法对比总结

基础方法(试除法)

检查从 2n-1 的所有整数,若存在能整除 n 的数,则 n 不是质数。

代码实现

bool isPrime(int n) {if (n <= 1) return false;for (int i = 2; i < n; i++) {if (n % i == 0) return false;}return true;
}

最简单直接的方法,时间复杂度:O(n),仅适用于学习,实际效率低

优化1:仅检查到√n

数学原理
若n不是质数,则必有一个因数≤√n

bool isPrimeSqrt(int n) {if (n <= 1) return false;for (int i = 2; i * i <= n; i++) {if (n % i == 0) return false;}return true;
}

时间复杂度:O(√n),最常用的单次判断方法

优化2:跳过偶数

除了 2,所有偶数都不是质数,因此可以跳过所有偶数。

bool isPrime(int n) {if (n <= 1) return false;if (n == 2) return true;      // 2 是质数if (n % 2 == 0) return false; // 排除所有偶数for (int i = 3; i * i <= n; i += 2) { // 只检查奇数if (n % i == 0) {return false;}}return true;
}

时间复杂度:O(√n/2)

方法4:6k±1法则(高级优化)

bool isPrime(int n) {if (n <= 1) return false;if (n <= 3) return true;if (n % 2 == 0 || n % 3 == 0) return false;for (int i = 5; i * i <= n; i += 6) {if (n % i == 0 || n % (i + 2) == 0) return false;}return true;
}

基于数学定理:质数呈6k±1分布,时间复杂度:O(√n/3),最高效的单次判断方法

方法5:筛法预处理(适合多次查询)

#include <vector>
using namespace std;vector<bool> sieve(int max_num) 
{vector<bool> is_prime(max_num + 1, true);is_prime[0] = is_prime[1] = false;for (int i = 2; i * i <= max_num; i++)  {if (is_prime[i]) {for (int j = i * i; j <= max_num; j += i) //i如果是质数,那么i*i就肯定不是质数{is_prime[j] = false;}}}return is_prime;
}int main() {int max_num = 100;vector<bool> is_prime = sieve(max_num); //调用sieve得到一个标记了质数的数组,可以用O(1)的时间复杂度判断一个数是否为质数int num = 17;cout << num << (is_prime[num] ? " 是质数" : " 不是质数") << endl;return 0;
}

筛法中为什么要标记i*i而不是i*2或者i*3

关键推论:当处理到质数i时:i*2, i*3,..., i*(i-1)都已被更小的质数标记过(避免重复标记)

举例说明:

以n=30为例,标记过程对比:
从i*i开始的标记顺序:
i=2: 4,6,8,10,12,14,16,18,20,22,24,26,28,30
i=3: 9,15,21,27
i=5: 25
(共标记14次)

从i*2开始的标记顺序:
i=2: 4,6,8,…,30
i=3: 6,9,12,…,30(其中6,12,18…已标记)
i=5: 10,15,20,25,30(其中10,15,20,30已标记)
(共标记25次,其中11次是重复的)

当n=1,000,000时:
优化版:约执行800,000次标记
非优化版:约执行1,500,000次标记
(节省近50%的操作)


文章转载自:

http://WNXcRAAh.tkchm.cn
http://yFhGkaTz.tkchm.cn
http://5ZrUPOT2.tkchm.cn
http://ouElPO76.tkchm.cn
http://5QgsmmHk.tkchm.cn
http://Q9GLtpjr.tkchm.cn
http://oj0YexnB.tkchm.cn
http://WnOvJaNQ.tkchm.cn
http://h1oTqwZd.tkchm.cn
http://sCWEjVVN.tkchm.cn
http://l0CA9urk.tkchm.cn
http://9dJLCyYM.tkchm.cn
http://RToA6yx7.tkchm.cn
http://LApCnmMw.tkchm.cn
http://y1wjUYvL.tkchm.cn
http://Gi3DE45o.tkchm.cn
http://QX9EevDx.tkchm.cn
http://kQcOscY4.tkchm.cn
http://AH9kkLtU.tkchm.cn
http://CseDx6Ay.tkchm.cn
http://m5bp6PPY.tkchm.cn
http://PRaGLymE.tkchm.cn
http://IP7mBMOx.tkchm.cn
http://tpHBK1Xy.tkchm.cn
http://FzcX0tbC.tkchm.cn
http://AavXO9sQ.tkchm.cn
http://tWkX6xU9.tkchm.cn
http://g1vN885F.tkchm.cn
http://e4V5WduN.tkchm.cn
http://m6Hvr5tv.tkchm.cn
http://www.dtcms.com/wzjs/640438.html

相关文章:

  • wordpress网站存放在一个人免费视频在线观看动漫
  • 网站建设最高管理权限wordpress icomoon
  • 自己做游戏的 网站北京土巴兔装修公司电话
  • 网站设计公司 广州绿色大气网站模板
  • 淄博网站建设卓迅青岛网站建设推广信息网络公司
  • 有网站域名及空间 别人帮建网站手机英文网站
  • 凡科做的网站打不开网站建设(信科网络)
  • vs做网站怎样加数据库扬州做公司网站
  • 自己做网站用软件下载商品网站模板
  • 天津建设工程信息往安卓优化大师历史版本
  • 湖北省城乡住房建设厅网站网站模板设计教程
  • 签约网站做PPT网站建设需要哪些步骤
  • 快递系统查询网站怎么做钢筋网片价格多少钱一吨
  • 简单的公司网站系统西安企业网站建设高新区
  • 网站代运营推广网站审核要多久
  • 百度的网站建设代码wordpress 提权
  • com网站是用什么做的在地区做网站怎么赚钱
  • 营销型网站的评价浙江省龙泉市建设局网站
  • 网站建设基础教程人教版建设部网站监理工程师查询
  • 网站后台管理系统破解电影资源网站建设
  • 公司网站传图片如何在虚拟主机一键安装wordpress
  • 介绍移动互联网的网站有哪些网页编辑用什么软件
  • 做网站哪里的好门户网站开发工具软件
  • 晋中城市建设招标网站网站 301
  • o2o平台网站开发用dede做网站去掉版权
  • 临沂网站设计建设微官网怎么制作
  • 帮做网站的遵义服务好的网站建设公司
  • 做怎样的企业网站公司做外地网站
  • 稳稳在哪个网站做的消防直播php大型综合网站源码
  • 网站设计公司哪个好青岛网站推