博客
关于我
NUC1077 Humble Numbers【数学计算+打表】
阅读量:800 次
发布时间:2023-02-17

本文共 1442 字,大约阅读时间需要 4 分钟。

为了解决这个问题,我们需要找到一个数列中第n个“谦逊数”。谦逊数是指其质因数分解中只包含2、3、5和7的数。我们可以通过生成所有可能的这些数,然后排序来找到第n个数。

方法思路

  • 生成谦逊数:我们通过枚举质因数的指数来生成所有可能的谦逊数。每个质因数的指数范围都设置为0到30,这样可以覆盖到足够大的数。
  • 去重和排序:生成的数可能会有重复,所以我们使用集合去重,然后排序得到有序的列表。
  • 处理输入和输出:读取输入的每个n值,直到n为0为止。对于每个n,找到对应的谦逊数,并根据n的值确定正确的后缀(如st, nd, rd, th)。
  • 解决代码

    def get_suffix(n):    if 11 <= (n % 100) <= 13:        return 'th'    last_digit = n % 10    if last_digit == 1:        return 'st'    elif last_digit == 2:        return 'nd'    elif last_digit == 3:        return 'rd'    else:        return 'th'def main():    numbers = []    for a in range(0, 31):        for b in range(0, 31):            for c in range(0, 31):                for d in range(0, 31):                    num = (2 ** a) * (3 ** b) * (5 ** c) * (7 ** d)                    numbers.append(num)    numbers = sorted(list(set(numbers)))    for line in sys.stdin:        n_line = line.strip()        if not n_line:            continue        n = int(n_line)        if n == 0:            break        if n < 1 or n > len(numbers):            print("Invalid input")            continue        num = numbers[n - 1]        suffix = get_suffix(n)        print(f"The {n}{suffix} humble number is {num}.")if __name__ == "__main__":    main()

    代码解释

  • get_suffix函数:根据n的值返回正确的后缀。例如,n=1返回'st',n=2返回'nd',依此类推。
  • main函数
    • 生成谦逊数:通过四层循环生成所有可能的2^a * 3^b * 5^c * 7^d的数。
    • 去重和排序:使用集合去重,然后排序得到有序的列表。
    • 读取输入和处理:读取每行输入的n值,直到n为0为止。对于每个n,找到对应的谦逊数,并输出结果。
  • 这种方法确保了我们能够高效地生成和排序谦逊数,并在处理输入时快速找到所需的数。

    转载地址:http://erjfk.baihongyu.com/

    你可能感兴趣的文章
    Nginx配置ssl实现https
    查看>>
    Nginx配置TCP代理指南
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NI笔试——大数加法
    查看>>
    NLP 基于kashgari和BERT实现中文命名实体识别(NER)
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
    查看>>
    NR,NF,FNR
    查看>>
    nrf开发笔记一开发软件
    查看>>
    NSSet集合 无序的 不能重复的
    查看>>
    ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
    查看>>
    nullnullHuge Pages
    查看>>
    numpy 用法
    查看>>
    Numpy如何使用np.umprod重写range函数中i的python
    查看>>
    oauth2-shiro 添加 redis 实现版本
    查看>>
    OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
    查看>>
    OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
    查看>>
    OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
    查看>>
    OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
    查看>>
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>