尤拉計劃723:畢達哥拉斯四邊形
畢達哥拉斯四邊形
測試程式
def f(n):
r=math.floor(math.sqrt(n))
x=range(-r,r+1)
y=range(-r,r+1)
p=[(i,j) for i in x for j in y if i*i+j*j==n]
def ax(p):
x,y=p[0],p[1]
if x>0 and y>=0 :return (1, -x)
if x<=0 and y>=0:return (2, -x)
if x<=0 and y<0 :return (3, x)
if x>0 and y<0 :return (4, x)
p.sort(key=ax)
lenp=len(p)
s=0
for i in range(0,lenp):
for j in range(i+1,lenp):
for k in range(j+1,lenp):
for a in range(k+1,lenp):
t= p[i][0]*p[j][0]+p[j][0]*p[k][0]+p[k][0]*p[a][0]+p[a][0]*p[i][0]
t+=p[i][1]*p[j][1]+p[j][1]*p[k][1]+p[k][1]*p[a][1]+p[a][1]*p[i][1]
if t==0:s+=1
return s
import itertools
def S(L): #L=[(5,2),(13,1)],L=[(5,1),(13,1),(17,1)]
L1=[]
for x in L:
L1.append( [x[0]**i for i in range(x[1]+1)])
s=0
for i in itertools.product(*L1):
m=1
for j in i: m*=j
s+=f(m)
return s
相關文章
- 畢達哥拉斯定理:追尋圖形最初形狀與宇宙形成
- 尤拉計劃700:尤拉幣
- 尤拉計劃718:不可達數
- 尤拉五邊形數定理小記
- 尤拉計劃622:洗牌
- 尤拉計劃698:123數
- 尤拉計劃696:麻將
- 尤拉計劃719:拆分數
- 尤拉計劃699:三腳數
- 尤拉計劃706:三象數
- 尤拉計劃686:2的冪
- 尤拉計劃715:六元組
- 尤拉計劃709:偶數袋
- 尤拉計劃708:你只要2
- 尤拉計劃712:指數差
- 尤拉計劃749:近似冪和
- 尤拉計劃739:和的和
- 尤拉計劃751:串聯重合
- 尤拉計劃745:平方和
- 尤拉計劃717:取模公式之和公式
- 尤拉計劃722:慢收斂系列
- 尤拉計劃695:隨機長方形隨機
- 尤拉計劃694:立方滿因數
- 尤拉計劃725:數位之和數
- 尤拉計劃710:1百萬會員
- 尤拉計劃697:隨機衰減序列隨機
- 尤拉計劃713:圖蘭熱水系統
- 尤拉計劃711:二進位制黑板
- 尤拉計劃748:倒丟蕃多方程
- 尤拉計劃747:三角披薩
- 尤拉計劃657:不完整的單詞
- 尤拉計劃721:無理數高次冪
- 尤拉計劃701:隨機連線區域隨機
- 尤拉計劃714:兩種數位的數
- 尤拉方程
- 尤拉定理
- 尤拉篩
- 尤拉計劃658:不完整的單詞(2)