若正整数 N 可以整除它的 4 个不同正因数之和,则称这样的正整数为“大美数”。本题就要求你判断任一给定的正整数是否是“大美数”。
输入格式:
输入在第一行中给出正整数 K(≤10),随后一行给出 K 个待检测的、不超过 104 的正整数。
输出格式:
对每个需要检测的数字,如果它是大美数就在一行中输出 Yes
,否则输出 No
。
输入样例:
3
18 29 40
输出样例:
Yes
No
Yes
提交结果:
代码:
def yinshu(a):
l1 = []
for i in range(1, a + 1):
if a % i == 0:
l1.append(i)
return l1
def pdd(l, a):
num = len(l)
for i in range(0, num):
for j in range(i + 1, num):
for k in range(j + 1, num):
for z in range(k + 1, num):
if (l[i] + l[j] + l[k] + l[z]) % a == 0:
return True
return False
n = int(input())
num = input().split()
for i in range(n):
a = int(num[i])
l = yinshu(a)
if len(l) < 4:
print("No")
else:
if pdd(l, a) == True:
print('Yes')
else:
print('No')