#=========================================================# # Multi-digit multiplication time by python with int # # type in bit: n = 2^bit # # first step: n multiplications of 15 digits # # middle step: n=n/2, digits=2*digits # # last step : 1 multiplication of 15n digits # # output file: mul_py.txt # #---------------------------------------------------------# # copy right : Ushiro Yasunori (ISCPC) # # date : 2020/02/07 # #=========================================================# inport math,time dec = 18 cst = 1 for k in range(dec): cst = cst * 10 # cst=10^dec print("typein bit(<=26), n=2^bit") bit = int(input(">>")) # input bit if bit > 26: bit = 26 n = 1 << bit # n=2^bit a = [0]*n print("Multiplication test start") for k in range(n): a[k] = k + cst def mul(a, n): # mul function for k in range(n): a[k] = a[k]*a[k+n] return a fo = open("mul_py.txt", "w") # open output file n = n >> 1 # n=n/2 dec = 18*2 # 18*2 decimal while n > 0: t1 = time.time() a = mul(a, n) # a[k]=a[k}*a[k+n} t2 = time.time() out1 ="out(keta,kazu):"+format(dec)+" * "+format(n) out2 = ", time= "+"{:.2f}".format(t2-t1)+" (s)" print(out1+out2) fo.write(out1+out2+"\n") n = n >> 1 # n = n/2 dec = dec * 2