|
发表于 2017-11-27 16:34:31
|
显示全部楼层
本帖最后由 nononoyes 于 2017-11-27 17:06 编辑
#通过列表判断奇数位是否和偶数位的和相等
def ifSame(rslt):
oddsum=0
evensum=0
for i in range(0,8):
if(i%2==0):
oddsum = oddsum+rslt[i]
else:
evensum = evensum+rslt[i]
if(oddsum==evensum):
return True
else:
return False
#将数字转化为列表
def intToList(n):
rslt=[]
for i in str(n):
rslt.append(int(i))
return rslt
#判断这个数是否为完全平方数:
def isPerfectSquareNumber(num):
a = math.sqrt(num)
a = [str(a),int(a)][int(a)==a]
if(isinstance(a,int)):
return True
else:
return False
#判断是否有重复元素:
def ifDuplicateElement(num):
rslt = intToList(num)
for i in rslt:
if rslt.count(i)>1:
return False
break
else:
return True
def getNum127(a,b):
resultSets=[]
for i in range(a,b):
#判断是否是完全平方数
if(isPerfectSquareNumber(i)):
#判断是否奇数位之和等于偶数位之和
if(ifSame(intToList(i))):
#判断是否有重复元素
if(ifDuplicateElement(i)):
resultSets.append(i)
return resultSets
if __name__ == "__main__":
results = getNum127(10000000,100000000)
print(results)
结果为:
[10673289, 13498276, 19847025, 20738916, 32970564, 57108249, 68973025, 86397025] |
评分
-
查看全部评分
|