Zz_sleep 发表于 2023-2-2 09:14:01

问题求助

存不存在这样的数字,它的某些(至少2个)幂次(幂次指n次方)恰好用了0~9十个数码(每个只用一次)呢?例: 3的3次幂27和4次幂81用了1、2、7、8四个数码{:10_266:}

tommyyu 发表于 2023-2-2 09:32:11

是 a^n 和 a^m 都恰好用了0~9十个数码(每个只用一次)么?

Zz_sleep 发表于 2023-2-2 09:34:24

tommyyu 发表于 2023-2-2 09:32
是 a^n 和 a^m 都恰好用了0~9十个数码(每个只用一次)么?

是的{:5_109:}

tommyyu 发表于 2023-2-2 09:41:41

Zz_sleep 发表于 2023-2-2 09:34
是的

我感觉不可能存在,理由如下
首先,设 a ^ n 和 a ^ (n+k) 满足要求
而 a ^ n 和 a ^ (n+k) 都必须是 10 位数(每个数码只使用一次)
则 (a ^ (n+k)) / (a ^ n) 最大有可能是 9999999999 / 1000000000 ≈ 10
则 a ^ k < 10,a 的取值范围是 2 ~ 9
经过简单的程序验证,可以得出,在 a 的取值范围为 2 ~ 9 时,a ^ n不可能每个数码只使用一次。
所以这样的数不存在。

Zz_sleep 发表于 2023-2-2 09:51:21

tommyyu 发表于 2023-2-2 09:41
我感觉不可能存在,理由如下
首先,设 a ^ n 和 a ^ (n+k) 满足要求
而 a ^ n 和 a ^ (n+k) 都必须是 ...

听君一席话,顿感茅塞顿开,阿里嘎多!!!请问有代码吗?非常感谢!!!一直都想不出来怎么写代码实现那{:5_111:}

皮蛋炒榴莲 发表于 2023-2-2 09:53:41

a、m、n仅为自然实数的话,末位为0的幂运算(2次及以上,余同),结尾只为0;末位为1的幂运算结尾仅为1;末位为2的幂运算结尾仅为2、4、6、8;末位为3的幂运算结尾仅为1、3、7、9;末位为4的幂运算结尾仅为4、6;末位为5的幂运算结尾仅为5;末位为6的幂运算结尾仅为6;末位为7的幂运算结尾仅为1、3、7、9;末位为8的幂运算结尾仅为2、4、6、8;末位为9的幂运算结尾仅为1、9。

tommyyu 发表于 2023-2-2 09:58:10

Zz_sleep 发表于 2023-2-2 09:51
听君一席话,顿感茅塞顿开,阿里嘎多!!!请问有代码吗?非常感谢!!!一直都想不出来怎么写代码实现那 ...

def a(n):
    ten_digits = []
    for i in range(1, 1000):
      num = n ** i
      num = str(num)
      if len(num) > 10: break # 如果超过了10位就直接退出
      if len(num) == 10: ten_digits.append(num) # 如果等于 10 位就加入到列表里
    return ten_digits

def b(n): # 看有没有重复
    for i in n:
      if sorted(list(set(i))) == sorted(list(i)): # 利用集合来判重
            print(i) # 不重复
      # 否则就不打印

      
for i in range(2, 9+1):
    b(a(i))

   
#没有打印,则没有不重复的

Zz_sleep 发表于 2023-2-2 10:12:13

tommyyu 发表于 2023-2-2 09:58


非常感谢!!!
页: [1]
查看完整版本: 问题求助