幸运数字。

哈沙德数是指在某个固定的进位制当中,可以被各位数字之和整除的正整数。例如126是十进制下的一个哈沙德数,因为(126)10 mod(1+2+6)=0;12 也是八进制下的哈沙德数,因为(126)10 =(176)8,(126)10 mod(1+7+6)=0;同时126也是16 进制下的哈沙德数,因为(126)10 =(7e)16,(126)10 mod (7 +e) = 0。小蓝认为,如果一个整数在二进制、八进制、十进制、十六进制下均为哈沙德数,那么这个数字就是幸运数字,第1至第10个幸运数字的十进制表示为:1,2,4,6,8,40,48,72,120,126...现在他想知道第2023个幸运数字是多少?你只需要告诉小蓝这个整数的十进制表示即可。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分

import os
import sys

# 请在此输入您的代码

dic=dict({
    "a":10,
    "b":11,
    "c":12,
    "d":13,
    "e":14,
    "f":15
}
)

def mysum(string):
  sum1=0
  for s in string:
    if s in dic:
      sum1+=dic[s]
    else:
      sum1+=int(s)
  return sum1

num=1
cnt=0

while cnt<2023:
  if num%mysum(bin(num)[2:]) == 0 and num%mysum(oct(num)[2:]) == 0 and num%mysum(hex(num)[2:]) == 0 and \
                      num%mysum(str(num)) == 0:
    cnt+=1
  num+=1

print(num-1)

注意:

利用python中函数转变进制时带前缀需要去除[2:]

0b1010

十进制转变二进制bin()

十进制转变八进制oct()

十进制转变十六进制hex()

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vsropy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值