Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import *
- from numpy import *
- def new_big_int (inp):
- slots = int(log10(inp))
- slots += 10 - slots%10
- big_int = []
- for n in range(slots+1):
- big_int.append(0)
- i = slots
- j = 0
- big_int[i] = inp
- while i > 0:
- if big_int[i] > 9:
- j = floor(big_int[i]/10);
- big_int[i] -= j*10
- big_int[i-1] += j
- i -= 1
- return big_int
- def add_big_int (big_int,big_int2):
- i = len(big_int)-1
- j = len(big_int2)-1
- k = i >= j
- if k:
- while j > -1:
- big_int[i] += big_int2[j]
- if big_int[i] > 9:
- k = floor(big_int[i]/10);
- big_int[i] -= k*10
- big_int[i-1] += k
- j-=1
- i-=1
- else:
- while i > -1:
- big_int2[j] += big_int[i]
- if big_int2[j] > 9:
- k = floor(big_int2[j]/10);
- big_int2[j] -= k*10
- big_int2[j-1] += k
- j-=1
- i-=1
- big_int = big_int2
- return big_int
- def sub_big_int (big_int,big_int2):
- i = 0
- if len(big_int) >= len(big_int2):
- k = len(big_int)
- m = 1
- else:
- k =len(big_int2)
- m = 2
- big_out = []
- if m ==1 :
- k = len(big_int)-len(big_int2)
- while k > 0:
- big_int2.insert(0,0)
- k -= 1
- else:
- k = len(big_int2) - len(big_int)
- while k > 0:
- big_int.insert(0,0)
- k -= 1
- k = len(big_int)
- while k > 0:
- big_out.append(0)
- k -= 1
- i = 0
- k = len(big_int)-1
- for i in range(0,k):
- big_out[i] = big_int[i] - big_int2[i]
- i += 1
- i = k
- while i > 1:
- if big_out[i] < 0:
- big_out[i] += 10
- big_out[i-1] -= 1
- i -= 1
- return big_out
- def print_big (big_int):
- out_string = ''
- for i in range(len(big_int)):
- out_string += str(int(big_int[i]))
- print(out_string)
- def mult_big (big_int3, inp):
- big_int4 = big_int3
- big_out2 = []
- k = len(big_int3)
- while k > 0:
- big_out2.append(0)
- k -= 1
- for i in range(inp-1):
- big_out2 += add_big_int(big_int3,big_int4)
- return big_out2
- IntA = new_big_int (300)
- IntB = new_big_int (750)
- print_big (IntA)
- print_big (IntB)
- IntA = add_big_int (IntA,IntB)
- print_big (IntA)
- IntB = sub_big_int(IntA,IntB)
- print_big (IntB)
- IntA = new_big_int (500)
- print_big (IntA)
- IntA = mult_big (IntA, 20)
- print_big(IntA)
- 00000000300
- 00000000750
- 00000001050
- 00000000300
- 00000000500
- 0000000000000000002000000000040000000000800000000026000000000620000000022400000000448000000020060000000402200000008044000000260880000006228600000224682000004604640000202202800004044066000080882420002628648400062684068000
- ----------
- (Program executed with code: 0)
- Press return to continue
Add Comment
Please, Sign In to add comment