首页 > 其他分享 >2022年十三届----试题C:质因数个数(中)

2022年十三届----试题C:质因数个数(中)

时间:2023-11-26 13:11:07浏览次数:32  
标签:count int 质数 列表 ---- 素数 2022 ans 质因数

目录

题目

暴力

  • 先暴力把到n的质数存在一个列表里面,如何遍历列表,如果n可以整除该质数就count++,最后返回count
m=[]
count=0
n=int(input())
for i in range(1,n):
    if i>1:
        for j in range(2,int(i**0.5)+1):
            if i%j==0:
                break
        else:
            m.append(i)
for i in  m:
    if n%i==0:
        count+=1

print(count)
  • 只能通过30%的测试

题解

  • 处理了n很大的情况,判断素数也做了一定优化
n = int(input()) #获取输入
a = [2, 3] #初始化列表用来保存质数
ans = 0 #初始化ans,用来存质因数个数

for i in a: #遍历列表 a,该列表包含 [2, 3]
    if n % i == 0:  #判断 n 是否能被 2 或 3 整除
        ans += 1
        while n % i == 0:#通过循环除以对应的素数,降低 n 的值
            n //= i
for i in range(5, int(n ** 0.5) + 1, 6):#使用从 5 开始,步长为 6 的循环
#除了 2 和 3,所有的质数都可以写成 6k ± 1 的形式。所以我们只需要检查它是否能被 i 和 i + 2 整除,就可以判断它是否为质数。
    b = [i, i + 2]#包含当前循环的素数 i 和 i+2
    for j in b:
        if n % j == 0:#如果能整除
            ans += 1 #将计数器 ans 增加
            while n % j == 0: #循环除以对应的素数
                n //= j #降低 n 的值。
if n > 1:#如果 n 的值大于 1,说明 n 本身就是一个素数
    ans += 1
print(ans)

标签:count,int,质数,列表,----,素数,2022,ans,质因数
From: https://www.cnblogs.com/lushuang55/p/17853198.html

相关文章

  • spark的shuffle和mapreduce的shuffle的区别
    功能上,MR的shuffle和Spark的shuffle是没啥区别的,都是对Map端的数据进行分区,要么聚合排序,要么不聚合排序,然后Reduce端或者下一个调度阶段进行拉取数据,完成map端到reduce端的数据传输功能。方案上,有很大的区别,MR的shuffle是基于合并排序的思想,在数据进入reduce端之前,都会进行sor......
  • C#入门实践
    ①必备知识点_控制台相关staticvoidMain(string[]args){Console.WriteLine("控制台相关");#region知识点一复习输入输出//输出//Console.WriteLine("123123");//光标空行//Console.Write("1......
  • [ARC105E] Keep Graph Disconnected
    题目链接好题。如果\(1\)和\(n\)一直联通,开始即结束。如果\(n\mod4=1\),那么\(\frac12x(x+1)+\frac12(n-x)(n-x+1)\)为偶数。如果\(n\mod4=3\),那么\(\frac12x(x+1)+\frac12(n-x)(n-x+1)\)为奇数。这两种情况最后连的边的数量奇偶固定,结合\(m\)的大小可以算出......
  • ShardingSphere学习笔记
    MySQL7的root密码校验方式:mysql_native_passwordMySQL8的root密码校验方式:caching_sha2_password将mysql8的root密码校验方式改为7的:ALTERUSER'root'@'%'IDENTIFIEDWITHmysql_native_passwordBY'123456'; 进入docker容器:防止中文显示乱码:dockerexec-itxxx-na......
  • [ABC327G] Many Good Tuple Problems
    题目链接简化题意:有一个\(n\)个点的图,问有多少个长度为\(M\)的边序列,满足连边后图是二分图。\(n\le30,m\le10^9\)考虑先强制要求无重边。定义\(f_{i,j}\)为\(i\)个点,\(j\)条边的图的二分图染色数量(染色方式不同算多次)。这个是可以通过枚举黑色点的数量算出来。然......
  • 高级前端开发工程师必备:Hooks、React Router v6 和状态管理
    点击下方“前端开发博客”,关注并“设为星标”大家好,我是漫步最近一个大佬的简历这样子写的,“可以熟练利用react全家桶进行开发。对ahooks部分源码阅读,加深对hooks的基本使用及其内部的实现原理有了深层次的理解;阅读过react-rouerv6的源码,进行过技术分享;对技术选型(redux、......
  • [左神面试指南] 其他题目[中]篇
    CD66并查集的实现publicclassCD66_1{publicstaticclassSolution{int[]f;publicSolution(intn){f=newint[n];Arrays.fill(f,-1);}privateintfind(inta){......
  • 三个月写了个短信平台,开源出来!
    1初心大家好,我是勇哥。花了三个月的时间,我手写了个短信平台服务platform-sms,今天开源出来Beta版本。写这个开源项目的初心其实很简单:"帮助初中级研发工程师入门架构设计,提升他们的技术认知"。2018年,作为架构师,我参与一个短信平台的重构。发送短信的场景包括还款业务、CRM......
  • C++聊天集群服务器1
    ​ 先给出整个项目的结构图:​ 一、环境搭建​ 施磊的c++聊天项目。相信已经到了这部分内容就已经能够自行搭建环境了,这里主要给出搭建的具体内容,方法自行百度。下面给出环境要求。​ 1.json-cpp​ 2.muduo库​ 3.cmake​ 4.mysql二、CMake编写​ 主目录下的cmakecmake_m......
  • Seata部署
    系统环境阿里云ubuntuJava:openjdkversion"1.8.0_382"Seata:seata-server-1.8.0下载Seata-servergithub下载地址:https://github.com/seata/seata/releases官网下载地址:https://seata.io/zh-cn/blog/download.html部署安装将下载好的Seata-server存放到指定的工作目录,......