Advertisement
Guest User

Untitled

a guest
Aug 29th, 2015
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.91 KB | None | 0 0
  1. import math
  2.  
  3. triple_lim = 20
  4. triple_list = []
  5. conjecture = True
  6.  
  7. def genTriple(m, n):
  8.     a = m*m - n*n
  9.     b = 2*m*n
  10.     triple_list.append((a, b))
  11.  
  12. def gcd(m,n):
  13.     while n != 0:
  14.         t = n
  15.         n = m % n
  16.         m = t
  17.     return m
  18.  
  19. def lcm(x, y):
  20.     a = x
  21.     b = y
  22.     while x != y:
  23.         if x > y:
  24.             y += b
  25.         else:
  26.             x += a
  27.     return x
  28.  
  29. def genBrick(t1, t2):
  30.     brickGenerated = []
  31.     brickCount = 0
  32.     for i in range(0,4):
  33.         brickGenerated.append(False)
  34.  
  35.     ##gen brick with lcm(a1, a2)
  36.     a1 = t1[0]
  37.     b1 = t1[1]
  38.     a2 = t2[0]
  39.     b2 = t2[1]
  40.     a = lcm(a1, a2)
  41.            
  42.     b1 *= a/a1
  43.     a1 = a
  44.  
  45.     b2 *= a/a2
  46.     a2 = a
  47.    
  48.     if math.sqrt(b1*b1 + b2*b2)%1 == 0:
  49.         brickGenerated[0] = True
  50.         print(a, b1, b2)
  51.         brickCount += 1
  52.  
  53.     ##gen brick with lcm(b1, a2)
  54.     a1 = t1[1]
  55.     b1 = t1[0]
  56.     a2 = t2[0]
  57.     b2 = t2[1]
  58.     a = lcm(a1, a2)
  59.            
  60.     b1 *= a/a1
  61.     a1 = a
  62.  
  63.     b2 *= a/a2
  64.     a2 = a
  65.    
  66.     if math.sqrt(b1*b1 + b2*b2)%1 == 0:
  67.         brickGenerated[1] = True
  68.         print(a, b1, b2)   
  69.         brickCount += 1
  70.  
  71.     ##gen brick with lcm(a1, b2)
  72.     a1 = t1[0]
  73.     b1 = t1[1]
  74.     a2 = t2[1]
  75.     b2 = t2[0]
  76.     a = lcm(a1, a2)
  77.            
  78.     b1 *= a/a1
  79.     a1 = a
  80.  
  81.     b2 *= a/a2
  82.     a2 = a
  83.    
  84.     if math.sqrt(b1*b1 + b2*b2)%1 == 0:
  85.         brickGenerated[2] = True
  86.         print(a, b1, b2)
  87.         brickCount += 1
  88.  
  89.     ##gen brick with lcm(b1, b2)
  90.     a1 = t1[1]
  91.     b1 = t1[0]
  92.     a2 = t2[1]
  93.     b2 = t2[0]
  94.     a = lcm(a1, a2)
  95.            
  96.     b1 *= a/a1
  97.     a1 = a
  98.  
  99.     b2 *= a/a2
  100.     a2 = a
  101.    
  102.     if math.sqrt(b1*b1 + b2*b2)%1 == 0:
  103.         brickGenerated[3] = True
  104.         print(a, b1, b2)
  105.         brickCount += 1
  106.  
  107.     if brickGenerated[0] != brickGenerated[3] or brickGenerated[1] != brickGenerated[2] or brickCount != (2 or 0):
  108.         conjecture = False
  109. for n in range(1,triple_lim):
  110.     for m in range(n+1, triple_lim, 2):
  111.         if gcd(m,n) == 1:
  112.             genTriple(m,n)
  113.  
  114. for i in range(len(triple_list)):
  115.     for j in range(i+1, len(triple_list)):
  116.         genBrick(triple_list[i], triple_list[j])
  117.  
  118. if conjecture == False:
  119.     print("Conjecture False")
  120. else:
  121.     print("Conjecture True")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement