Python 幂挑战| 竞争编码问题

题:

幂函数是可以表示为x ^ x的正数,即x升为x的幂,其中x是任何正数。 您将得到一个整数数组A,并且如果数组A的元素是否为Power Number,则需要打印。

输入:

第一行包含N,一个正整数。下一行包含N个空格-分隔的整数。


    3
    1 3 4


输出:

对于每个整数,如果是幂数,则打印“ Yes”,否则打印“ No”。这些输出必须用空格分隔。


    Yes  No  Yes


限制条件:


    1 <= N  <= 100
    1 <= A[i] <= 10^16


说明/解决方案:

在这个问题中,我们必须检查数组中给定的数字是否为幂数。我们将在python中的幂函数的帮助下找到它。因此,我们可以通过将每个元素与幂数进行比较来做到这一点,因此首先我们从用户那里获取输入并创建大小为N的数组。然后制作另一个存储从1到14的幂数的数组。这个问题的重点是约束。在这个问题中,给出的约束直到10 ^ 16个数字。

为了解决这个问题,我们使用Python3。

码:


# 输入N
N = int(input())

# 输入N array elements
Arr = list(map(int, input().split()))

# 创建另一个空白/空数组
Brr = []
for i in range(15):
    # 在空白数组中附加电源编号
    Brr.append(pow(i, i))
for i in range(N):
    # 比较给定数组与 
    # 幂数数组一对一
    if(Arr[i]  in  Brr):
        # 如果匹配,则打印是其他方式否
        print('Yes', end=' ')  
    else:
        print('No', end=' ')


输出结果


RUN 1:
5
1 4 3 16 256
Yes Yes No No Yes

RUN 2:
5
2 4 8 16 32
No Yes No No No