Guest User

Untitled

a guest
May 26th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. from math import *
  2. from numpy import *
  3.  
  4. def new_big_int (inp):
  5. slots = int(log10(inp))
  6. slots += 10 - slots%10
  7. big_int = []
  8. for n in range(slots+1):
  9. big_int.append(0)
  10. i = slots
  11. j = 0
  12. big_int[i] = inp
  13. while i > 0:
  14. if big_int[i] > 9:
  15. j = floor(big_int[i]/10);
  16. big_int[i] -= j*10
  17. big_int[i-1] += j
  18. i -= 1
  19. return big_int
  20.  
  21.  
  22. def add_big_int (big_int,big_int2):
  23. i = len(big_int)-1
  24. j = len(big_int2)-1
  25. k = i >= j
  26. if k:
  27. while j > -1:
  28. big_int[i] += big_int2[j]
  29. if big_int[i] > 9:
  30. k = floor(big_int[i]/10);
  31. big_int[i] -= k*10
  32. big_int[i-1] += k
  33. j-=1
  34. i-=1
  35. else:
  36. while i > -1:
  37. big_int2[j] += big_int[i]
  38. if big_int2[j] > 9:
  39. k = floor(big_int2[j]/10);
  40. big_int2[j] -= k*10
  41. big_int2[j-1] += k
  42. j-=1
  43. i-=1
  44. big_int = big_int2
  45. return big_int
  46.  
  47. def sub_big_int (big_int,big_int2):
  48. i = 0
  49. if len(big_int) >= len(big_int2):
  50. k = len(big_int)
  51. m = 1
  52. else:
  53. k =len(big_int2)
  54. m = 2
  55. big_out = []
  56. if m ==1 :
  57. k = len(big_int)-len(big_int2)
  58. while k > 0:
  59. big_int2.insert(0,0)
  60. k -= 1
  61. else:
  62. k = len(big_int2) - len(big_int)
  63. while k > 0:
  64. big_int.insert(0,0)
  65. k -= 1
  66. k = len(big_int)
  67. while k > 0:
  68. big_out.append(0)
  69. k -= 1
  70. i = 0
  71. k = len(big_int)-1
  72. for i in range(0,k):
  73. big_out[i] = big_int[i] - big_int2[i]
  74. i += 1
  75. i = k
  76. while i > 1:
  77. if big_out[i] < 0:
  78. big_out[i] += 10
  79. big_out[i-1] -= 1
  80. i -= 1
  81. return big_out
  82.  
  83. def print_big (big_int):
  84. out_string = ''
  85. for i in range(len(big_int)):
  86. out_string += str(int(big_int[i]))
  87. print(out_string)
  88.  
  89. def mult_big (big_int3, inp):
  90. big_int4 = big_int3
  91. big_out2 = []
  92. k = len(big_int3)
  93. while k > 0:
  94. big_out2.append(0)
  95. k -= 1
  96. for i in range(inp-1):
  97. big_out2 += add_big_int(big_int3,big_int4)
  98. return big_out2
  99.  
  100. IntA = new_big_int (300)
  101. IntB = new_big_int (750)
  102. print_big (IntA)
  103. print_big (IntB)
  104. IntA = add_big_int (IntA,IntB)
  105. print_big (IntA)
  106. IntB = sub_big_int(IntA,IntB)
  107. print_big (IntB)
  108. IntA = new_big_int (500)
  109. print_big (IntA)
  110. IntA = mult_big (IntA, 20)
  111. print_big(IntA)
  112.  
  113. 00000000300
  114. 00000000750
  115. 00000001050
  116. 00000000300
  117. 00000000500
  118. 0000000000000000002000000000040000000000800000000026000000000620000000022400000000448000000020060000000402200000008044000000260880000006228600000224682000004604640000202202800004044066000080882420002628648400062684068000
  119.  
  120. ----------
  121. (Program executed with code: 0)
  122. Press return to continue
Add Comment
Please, Sign In to add comment