码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Python数学练习1】


    一、题目

    中文描述:
    给出正整数N,输出满足条件的数对(a,b)的个数,满足gcd(a,b)=b, a,b <= n
    数学描述:
    在这里插入图片描述

    二、解法

    解法1:
    在这里插入图片描述
    对应Python代码:

    def num_fact(n):
        num = 0
        for i in range(1, n + 1):
            if n % i == 0:
                num += 1
        return num
    
    
    # print(num_fact(55))
    
    def Sol1(n):
        ans = 0
        for i in range(1, n + 1):
            ans += num_fact(i)
        return ans
    
    
    print(Sol1(2))
    print(Sol1(3))
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    输出:
    在这里插入图片描述

    输出解释:
    输入2,满足条件的(a,b)对为(1,1) (2,1) (2,2),有3对,故输出3
    输入3,满足条件的(a,b)对为(1,1) (2,1) (2,2) (3,1) (3,3),有5对,故输出5

    解法时间复杂度:
    对于1到N之间的每个整数i,遍历地寻找i的因子个数,每次耗时为O(N),故总体时间复杂度为O(N^2)。

    解法2:
    在这里插入图片描述
    对应Python代码:
    由于要用到向下取整函数floor,我们需要导入Python内建的math数学运算库。

    import math
    def Sol2(n):
        ans = 0
        for i in range(1, n + 1):
            ans += math.floor(n / i)
        return ans
    
    
    print(Sol2(2))
    print(Sol2(3))
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    输出:
    在这里插入图片描述解法时间复杂度:
    该解法只遍历了一次1到N,故时间复杂度为O(N),且没有额外的空间复杂度。

  • 相关阅读:
    Git语句
    做web自动化测试遇到Chrome浏览器老是自动更新,怎么办 ? 这里提供两个解决办法 。
    FTP传输安全问题日渐突出,如何解决替代问题?
    LeetCode --- 1539. Kth Missing Positive Number 解题报告
    C++-Mongoose(3)-http-server-https-restful
    Python类和对象怎么使用
    算法刷题第一天:二分查找
    vue2技能树(2)-模板语法、vue的工具链、渐进式框架
    java中HashMap的设计精妙在哪?
    QT报错The inferior stopped because it received a signal from the operating system
  • 原文地址:https://blog.csdn.net/weixin_43031313/article/details/134460049
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号