fork download
  1. # your code goes here
  2. def addition(x, y):
  3. return (x+y)%p
  4.  
  5. def minus(x, y):
  6. return (x-y) % p
  7.  
  8. def multiply(x, y):
  9. return x*y % p
  10.  
  11. def multiplyAll(*args):
  12. rlt = 1
  13. for x in args:
  14. rlt = multiply(x, rlt)
  15. return rlt
  16.  
  17. def exp(x, y):
  18. rlt = 1
  19. while y != 0:
  20. if y % 2 == 1:
  21. rlt = multiply(x, rlt)
  22. x = multiply(x, x)
  23. y = y // 2
  24. return rlt
  25.  
  26. def inverse(x):
  27. return exp(x, p-2)
  28.  
  29. def divide(x, y):
  30. return multiply(x, inverse(y))
  31. p = 11
  32. print (exp(2, 2) == 4)
  33. print (exp(2, 1) == 2)
  34. print (multiply(2, exp(2, p-2)) == 1)
  35. print (divide(6, 8) == 9)
  36. print (minus(2, 3) == p-1)
  37. x1 = divide(5, 2)
  38. z1 = divide(1, 2)
  39. x2 = divide(2, 7)
  40. z2 = divide(1, 7)
  41. x3 = divide(8, 3)
  42. z3 = divide(1, 3)
  43.  
  44. inner = minus(multiply(x2, z1), multiply(z2, x1))
  45. print (z3 == multiplyAll(exp(inner, 3), z1, z2))
Success #stdin #stdout 0.01s 9024KB
stdin
Standard input is empty
stdout
True
True
True
True
True
False