math模块的pow()计算幂时提示OverflowError: math range error (python)_python math range error-程序员宅基地

技术标签: 算法  python  散列表  每日一题  leetcode  

背景

        刷题的时候用 ** 提示超时,就想着利用 python的 math 模块偷个懒,因为math.pow() 始终调用c语言写的那个代码,时间复杂度老低了,可能会加快速度,但是出现了错误,没办法只能手写快速幂

错误原因

        math.pow()函数计算幂运算,因为结果数值过大导致溢出。

解决办法

        手写快速幂自己实现快速幂

代码

mod 是因为数字过大要对 109+7取余数,mod = 109+7

def q_pow(self,n,m,mod):
    res = 1
    while m:
        if m&1:
            res = res*n % mod
        n = n*n%mod
        m = m>>1
    return res

那道题的完整链接加代码如下: 1808. 好因子的最大数目

class Solution:
    def maxNiceDivisors(self, primeFactors: int) -> int:
        if primeFactors<=4:
            return primeFactors
        mod = 10**9+7
        a = primeFactors//3
        b = primeFactors%3
        
        # 直接求不行会超时
        # if b==0:
        #     return 3**a%mod
        # elif b==1:
        #     return 3**(a-1)*4%mod
        # else:
        #     return 3**a*2%mod

        # 手写快速幂
        if b==0:
            return self.q_pow(3,a, mod)
        elif b==1:
            return (self.q_pow(3,a-1, mod)*4) % mod
        else:
            return (self.q_pow(3,a, mod)*2) % mod
        
    def q_pow(self,n,m,mod):
        res = 1
        while m:
            if m&1:
                res = res*n % mod
            n = n*n%mod
            m = m>>1
        return res
        

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43657442/article/details/123323010

智能推荐

有关SAP中等于空的问题_sap 固定值 為空-程序员宅基地

文章浏览阅读2.1k次。20.17. 表字段初始值、NULL等问题20.17.1. SE11表设置中的Initial Values如果一个表是新创建的,数据库中的所有字段都会被设计成非NULL,此时与钩不钩上“Initial Values”框没有关系,且都会设置默认值,并且所有的主键都会强制将“Initial Values”框钩上该标示只在修改表结构且在现有表结构增加一个字段时,才起..._sap 固定值 為空

[C/C++ -STL]vector底层实现机制刨析-程序员宅基地

文章浏览阅读7.2k次,点赞17次,收藏30次。一、vector底层实现机制刨析通过分析 vector 容器的源代码不难发现,它就是使用 3 个迭代器(可以理解成指针)来表示的:其中statrt指向vector 容器对象的起始字节位置;finish指向当前最后一个元素的末尾字节end_of指向整个 vector 容器所占用内存空间的末尾字节。如图 演示了以上这 3 个迭代器分别指向的位置如图 演示了以上这 2个迭代器分别指向的位置在此基础上,将 3 个迭代器两两结合,还可以表达不同的含义,例如:start 和 finish 可以用来表_vector底层实现

搭建5个节点的hadoop集群环境(CDH5)-程序员宅基地

文章浏览阅读1.9k次。提示:如果还不了解Hadoop的,可以下查看这篇文章Hadoop生态系统,通过这篇文章,我们可以首先大致了解Hadoop及Hadoop的生态系统中的工具的使用场景。搭建一个分布式的hadoop集群环境,下面是详细步骤,使用cdh5 。一、硬件准备基本配置:操作系统64位CPU(英特尔)Intel(R_cdh5

fxfactory卸载不干净?Fxfactory及插件卸载教程_fxfacory的插件有时候能用有时候用不了-程序员宅基地

文章浏览阅读432次。fxfactory是一款非常受欢迎的视频特效插件合集,能应用到FCPX、AE、PR、motion等软件中。过多特效插件下载会导致这些软件运行打开速度慢,那么如何卸载fxfactory这款软件或者删除那些特效插件呢?跟随小编一起来看看吧!fxfactory中插件删除教程打开fxfactory 软件,在Installed处找到已经安装过的插件,比如安装好的Caption Burner插件去掉勾选,插件颜色变黑白即可运行FCPX、AE、PR、motion等软件,Caption Burner就不会出现了,影响软件_fxfacory的插件有时候能用有时候用不了

Windows系统设置每天自动备份指定文件并自动删除七天前的文件(脚本+Windows任务计划)_ms-dos七天自动删除-程序员宅基地

文章浏览阅读8.3k次,点赞8次,收藏41次。Windows系统设置每天自动备份指定文件并自动删除七天前的文件(脚本+Windows任务计划)在生活中和工作中有时候为了避免电脑宕机导致文件丢失常常会使用一些方式去备份文件,今天小编给大家介绍一个方法,用于自动备份指定文件,并删除N天前的文件。_ms-dos七天自动删除

计算机科学创新大赛,全国青少年科技创新大赛-程序员宅基地

文章浏览阅读761次。全国青少年科技创新大赛China Adolescents Science & Technology Innovation Contest翰林青创赛战绩2020年计算机(选送全国)一等奖 1名计算机二等奖 1名化学二等奖 1名三等奖若干2019年数学一等奖 1名二等奖 1名三等奖若干项目介绍全国青少年科技创新大赛(China Adolescents Science & Tech..._青少年科技创新大赛计算机科学与信息技术

随便推点

清空数据库的方法_548数据库清库-程序员宅基地

文章浏览阅读744次。近来发现数据库过大,空间不足,因此打算将数据库的数据进行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此就想利用SQL语句一次清空所有数据.找到了三种方法进行清空.使用的数据库为MS SQL SERVER.1.搜索出所有表名,构造为一条SQL语句declare @trun_name varchar(8000)set @trun_name=''select_548数据库清库

STL --- 四、算法 Algorithms_c++ algorithms-程序员宅基地

STL中的算法提供了丰富的功能,包括常用算法介绍和时间、空间复杂度的选择。在编写程序时需根据具体问题选择适当的算法,满足时间或空间需求。

【计算机网络学习笔记04】网络体系架构与网络协议_网络体系以及网络协议的定义和内容。-程序员宅基地

文章浏览阅读1.4w次。【计算机网络学习笔记04】网络体系架构与网络协议一、网络协议的概念和要素网络协议是计算机网络相互通信的对等层实体之间,用来交换信息时必须遵守的规则或约定的集合。这些为网络数据交换而制定的通信规则、约定与标准被统称为网络协议,简称协议。网络协议主要由三个基本要素组成,分别是语法、语义和时序。语法:用于定义数据和控制信息的结构或格式。语义:用于解释数据或控制信息的具体含义。时序(同步):用于对事件实现顺序的详细说明。二、计算机网络体系结构计算机网络各层、层中协议以及层间接口的集合(即网络层次_网络体系以及网络协议的定义和内容。

【测试】echo发送和接收TCP/UDP数据包|shell 发送TCP/UDP数据包_shell脚本接收udp-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏14次。目录通过/dev/tcp、/dev/udpshell给tcp或udp服务发送16进制报文指令通过/dev/tcp、/dev/udp(https://blog.csdn.net/u010039418/article/details/86251470)通过/dev/tcp、/dev/udp可以直接在shell脚本中发起tcp、udp连接,方便又高效,平时用于测试啥的还是挺方便的。直接发送格式 /dev/udp/ip/port比如要向本地10001端口发送数据,可以使用ec._shell脚本接收udp

Pytorch学习笔记09——多分类问题_pytorch normalize mean, std-程序员宅基地

文章浏览阅读639次,点赞2次,收藏5次。pytorch多分类问题_pytorch normalize mean, std

学习open62541 --- [15] 使用建模工具UaModeler-程序员宅基地

文章浏览阅读1.2w次,点赞120次,收藏55次。讲述如何使用建模工具UaModeler_uamodeler

推荐文章

热门文章

相关标签