|
发表于 2020-3-19 18:20:22
|
显示全部楼层
本帖最后由 TJBEST 于 2020-3-19 21:17 编辑
- import math
- def fun355(c):
- def isSquare(num):#判断平方数
- temp = math.floor((num**(1/2)))
- if temp * temp != num:
- return False
- else:
- return True
- def isHuZhi(a,b):#判断互质 a > b
- while b:
- a,b = b,a%b
- if a == 1:
- return True
- else:
- return False
- def findHuZhi(a):#a > 2寻找所有比a小的与a互质的数 返回列表
- result = []
- for index in range(1,a):
- if isHuZhi(a,index):
- result.append(index)
- return result
-
- if isSquare(c):
- return True
- gate = math.floor(((c-1)**(1/2)))
- for index in range(1,gate+1):
- temp = 1 + index ** 2
- if c % temp == 0 and isSquare(c//temp):
- return True
- other = (-1+(2*c-1)**(1/2))/2
- gate = math.floor(other)
- for index in range(2,gate+1):
- HuZhiArr = findHuZhi(index)
- for each in HuZhiArr:
- other = (-each + (c-index)**(1/2))/index
- innergate = math.floor(other)
- for k in range(1,innergate+1):
- innerNum = k * index + each
- temp = (innerNum**2)+(index**2)
- if c % temp == 0 and isSquare(c//temp):
- return True
- return False
复制代码 |
评分
-
查看全部评分
|