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

银川建设厅网站百度搜索引擎盘搜搜

银川建设厅网站,百度搜索引擎盘搜搜,周口学做网站,网站首页被降权文章目录 质数判断质数3115.质数的最大距离 质数筛选204.计数质数2761.和等于目标值的质数对 2521.数组乘积中的不同质因数数目 质数 质数的定义:除了本身和1,不能被其他小于它的数整除,最小的质数是 2 求解质数的几种方法 法1,根…

文章目录

质数

质数的定义:除了本身和1,不能被其他小于它的数整除,最小的质数是 2

求解质数的几种方法
法1,根据定义,直接求解

        def zhi(i):if i == 1:return Falsefor j in range(2,i):if i % j ==0:return Falsereturn True

法2:优化暴力的解法,判断的时候只用判断到根号n,因为你如果存在一个大于根号n的因子,那就说明会存在一个小于根号n的因子,所以就不用重新判断

def zhi(i):if n <= 1:return Falsefor i in range(2, int(math.sqrt(n)) + 1):if n % i == 0:return Falsereturn True

常用的素数筛:

埃氏筛

def eratosthenes_sieve(n):is_prime = [True] * (n + 1)  # 初始化所有数为质数is_prime[0] = is_prime[1] = False  # 0 和 1 不是质数for i in range(2, int(n**0.5) + 1):  # 只需遍历到 sqrt(n)if is_prime[i]:  # 如果 i 是质数for j in range(i * i, n + 1, i):  # 标记 i 的所有倍数为合数is_prime[j] = Falseprimes = [i for i, prime in enumerate(is_prime) if prime]  # 提取所有质数return primes

欧式筛
在这里插入图片描述

def euler_sieve(n):is_prime = [True] * (n + 1)  # 初始化所有数为质数primes = []  # 存储筛选出的质数for i in range(2, n + 1):if is_prime[i]:primes.append(i)  # i 是质数,加入 primes 数组for p in primes:if i * p > n:break  # 超过范围,退出循环is_prime[i * p] = False  # 标记 i * p 为合数if i % p == 0: # 说明 p 是 i 的最小的质因数break  # 保证每个合数只被最小质因数筛掉return primes

判断质数

3115.质数的最大距离

3115.质数的最大距离

在这里插入图片描述

思路分析:采用双指针进行判断,这样可以快速求解

class Solution:def maximumPrimeDifference(self, nums: List[int]) -> int:# 策略,使用双指针,从两边进行遍历,如果发现是质数就停下来# 判断质数def zhi(i):if i == 1:return Falsefor j in range(2,i):if i % j ==0:return Falsereturn Truen = len(nums)# 双指针l,r = 0,n-1while not zhi(nums[l]):l+=1while not zhi(nums[r]):r-=1return r-l

质数筛选

204.计数质数

204.计数质数

在这里插入图片描述

思路分析:直接考虑使用欧式筛,注意题目是小于n的素数个数

class Solution:def countPrimes(self, n: int) -> int:# 两种做法,可以采用欧式筛def euler(m):isprime = [True]*(m+1) # 存储判断i是否是素数prime = []for i in range(2,m):# 如果是素数if isprime[i]:prime.append(i)for j in prime:if i*j > m:breakisprime[i*j] = Falseif i%j ==0:break # 确保每个数字只能被最小的质因数筛选return primereturn len(euler(n))

2761.和等于目标值的质数对

2761.和等于目标值的质数对

在这里插入图片描述

思路分析:首先使用欧拉筛进行筛选出小于等于n的素数的情况,然后使用双指针进行判断

class Solution:def findPrimePairs(self, n: int) -> List[List[int]]:# 先使用欧式筛进行预处理def euler(m):isprime = [True]*(m+1)prime = []for i in range(2,m+1):if isprime[i]:prime.append(i)for j in prime:if i*j > m:breakisprime[i*j] = Falseif i%j == 0:breakreturn primeprime = euler(n)# 还是采用双指针吧length = len(prime)l,r = 0,length-1ans = []while l<=r:if prime[l]+prime[r] < n:l+=1elif prime[l]+prime[r] == n:ans.append([prime[l],prime[r]])l+=1r-=1else:r-=1# 排序非递减排序ans.sort(key=lambda x : x[0])return ans

2521.数组乘积中的不同质因数数目

2521.数组乘积中的不同质因数数目
在这里插入图片描述

思路分析:通过不断的判断

class Solution:def distinctPrimeFactors(self, nums: List[int]) -> int:s = set()for x in nums:i = 2while i*i <=x:if x % i == 0:s.add(i)x //= iwhile x%i == 0:x//=i i+=1# 最后可能只剩下那个数直接加进去if x>1:s.add(x)return len(s)
http://www.hkea.cn/news/135428/

相关文章:

  • 动漫网站开发与建设百度网盘网页版入口官网
  • 咸阳做网站长沙网络营销外包哪家好
  • 专门做私人定制旅游的网站搜索引擎营销方法
  • 注册安全工程师管理系统网奇seo赚钱培训
  • 武汉市住房和城乡建设厅官方网站生猪价格今日猪价
  • 住房和城乡建设部网站诚信评价搜索引擎优化人员优化
  • 网站制作 太原网络营销专业课程
  • 做网站去哪个公司网络营销策划书的结构
  • 个人无网站怎样做cps广告深圳全网推广公司
  • 中国人可以做的c2c网站上海网站排名推广
  • 网站建设目标定位公司员工培训方案
  • 美工培训班学百度自然搜索排名优化
  • 网站建设自学多长时间搜索引擎营销的过程
  • 做cpa的网站源码seo的外链平台有哪些
  • 那个网站做外贸最好成都网站建设方案外包
  • 企业网站建设效益分析联合早报 即时消息
  • html5网页成品代码自媒体seo优化
  • 门户网站建设招投标网络seo啥意思
  • 游戏币销售网站建设百度热搜seo
  • 线上投票链接怎么做厦门搜索引擎优化
  • 网页设计课程主要内容seo学校
  • php 深圳 电子商务网站开发seo优化好做吗
  • 网站建设开发技术天津济南网站设计
  • 信息公开网站建设网店推广分为哪几种类型
  • 南皮网站建设价格seo搜索引擎优化方式
  • 网上购物系统的设计与实现论文长沙seo优化公司
  • 风景旅游网页制作素材seo推广灰色词
  • 网站制作网站建设网页设计页面
  • 网站开发兼容极速字体颜色推荐seo平台优化服务
  • wordpress建站流量齐三seo顾问