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

网站建站的尺寸专业网店推广

网站建站的尺寸,专业网店推广,简述网络营销的概念与特点,wordpress免费企业主题网站模板题目: 204. 计数质数 给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。 示例 1: 输入:n 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2: 输入:n 0 输出&…

题目:

204. 计数质数

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

示例 1:

输入:n = 10
输出:4
解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。

示例 2:

输入:n = 0
输出:0

示例 3:

输入:n = 1
输出:0

提示:

  • 0 <= n <= 5 * 106

方法一:暴力法(不推荐,仅作演示)

时间复杂度:O(n√n)
空间复杂度:O(1)

public class Solution {public int countPrimes(int n) {if (n <= 2) return 0;int count = 0;for (int i = 2; i < n; i++) {if (isPrime(i)) count++;}return count;}private boolean isPrime(int num) {if (num <= 1) return false;for (int i = 2; i * i <= num; i++) {if (num % i == 0) return false;}return true;}
}

方法二:埃拉托斯特尼筛法(基础版)

时间复杂度:O(n log log n)
空间复杂度:O(n)

import java.util.Arrays;public class Solution {public int countPrimes(int n) {if (n <= 2) return 0;boolean[] isPrime = new boolean[n];Arrays.fill(isPrime, true);isPrime[0] = isPrime[1] = false;for (int i = 2; i * i < n; i++) {if (isPrime[i]) {for (int j = i * i; j < n; j += i) {isPrime[j] = false;}}}int count = 0;for (boolean b : isPrime) {if (b) count++;}return count;}
}

方法三:埃氏筛优化版(跳过偶数)

时间复杂度:O(n log log n)
空间复杂度:O(n)

import java.util.Arrays;public class Solution {public int countPrimes(int n) {if (n <= 2) return 0;boolean[] isPrime = new boolean[n];Arrays.fill(isPrime, true);isPrime[0] = isPrime[1] = false;// 处理偶数for (int i = 4; i < n; i += 2) isPrime[i] = false;// 处理奇数for (int i = 3; i * i < n; i += 2) {if (isPrime[i]) {for (int j = i * i; j < n; j += 2 * i) {isPrime[j] = false;}}}int count = 0;for (int i = 2; i < n; i++) {if (isPrime[i]) count++;}return count;}
}

方法四:欧拉筛(线性筛)

时间复杂度:O(n)
空间复杂度:O(n)

import java.util.ArrayList;
import java.util.List;public class Solution {public int countPrimes(int n) {if (n <= 2) return 0;List<Integer> primes = new ArrayList<>();boolean[] isComposite = new boolean[n];for (int i = 2; i < n; i++) {if (!isComposite[i]) primes.add(i);for (int j = 0; j < primes.size() && i * primes.get(j) < n; j++) {isComposite[i * primes.get(j)] = true;if (i % primes.get(j) == 0) break;}}return primes.size();}
}

方法分析

  1. 暴力法:逐个检查每个数是否为质数,时间复杂度高,仅适用于极小的 n
  2. 埃氏筛:通过标记质数的倍数筛选合数,时间复杂度较低,适合大多数场景。
  3. 优化埃氏筛:跳过偶数处理,减少冗余操作,提高实际运行效率。
  4. 欧拉筛:每个合数仅被标记一次,时间复杂度最优,但实现稍复杂,适用于极大 n

根据需求选择合适的方法:推荐使用埃氏筛(方法二或三)作为通用解法,欧拉筛(方法四)在处理极大 n 时性能更优。

http://www.dtcms.com/wzjs/497121.html

相关文章:

  • 做影视网站难吗seo网站推广专员招聘
  • 公益事业做网站线上推广方案
  • 西宁网站建设公司排名软件
  • 用dedecms做的网站百度搜索引擎推广收费标准
  • 备案的网站必须打开吗苏州seo关键词排名
  • 电商网站设计方法百度入口提交
  • 一个用户注册的网站怎么做福州seo公司
  • 校园二手书交易网站开发整合营销传播工具有哪些
  • 电信宽带做网站服务器吗企业网站有什么
  • 甘肃省第八建设集团公司网站批量关键词排名查询工具
  • 旅游网站首页制作品牌传播策略
  • 实体行业做分销网站有什么好处网络营销教案ppt
  • 做网站niche西安seo网站管理
  • 专业做二手房的网站有哪些今天时政新闻热点是什么
  • 网站流量导入是什么意思seo怎么做优化工作
  • 活动网站建设专业网站建设公司
  • 小型视频网站建设如何推广平台
  • 陕西省住房和城乡建设厅官方网站在线智能识图
  • 如何赌博网站做代理百度网盘网页版
  • 南昌专业网站优化推广百度法务部联系方式
  • 网站建设经费保障属于b2b的网站有哪些
  • 网站域名备案 更改吗seo是什么
  • 集团网站建设特点 互联网课堂祁阳seo
  • 免费做章子的网站北京seo公司助力网络营销
  • 做h5找图网站大数据培训包就业靠谱吗
  • 快速做自适应网站最佳的资源搜索引擎
  • 建零售网站还是聚名网域名注册
  • 做衣服接订单的网站片多多可以免费看电视剧吗
  • 群晖套件做网站龙岗网站制作
  • 玛伊网站做兼职加入要多少钱seo手机关键词排行推广