You are on page 1of 2

import cmath

import math

def complex_mul(num1, num2):


real="{0:.2f}".format(num1[0]*num2[0]-num1[1]*num2[1])
imag="{0:.2f}".format(num1[0]*num2[1] + num1[1]*num2[0])
return [real,imag]

def complex_div(num1,num2):
real="{0:.2f}".format((num1[0]*num2[0] +
num1[1]*num2[1])/(num2[0]**2+num2[1]**2))
imag= "{0:.2f}".format((num1[1]*num2[0] -
num1[0]*num2[1])/(num2[0]**2+num2[1]**2))
return[real,imag]

def complex_add(num1,num2):
real="{0:.2f}".format(num1[0]+num2[0])
imag="{0:.2f}".format(num1[1]+num2[1])
return [real,imag]

def complex_sub(num1,num2):
real="{0:.2f}".format(num1[0]-num2[0])
imag="{0:.2f}".format(num1[1]-num2[1])
return [real,imag]

def complex_floor(num):
r=num[0]
i=num[1]
b=["{0:.2f}".format(math.floor(r)),"{0:.2f}".format(math.floor(i))]
x=r%1
y=i%1
if 1>x+y :
g=b;
elif 1<=x+y and x>=y :
g=complex_add(b,[1,0])
else:
g=complex_add(b,[0,1])
return g

def complex_ceil(num):
#g=-1*complex_floor(-1*num)
g=complex_mul([-1,0],complex_floor(complex_mul([-1,0],num)))
return g

def complex_mod(num1, num2):


#g=num-den*complex_ceil((num/den))
g=complex_sub(num1,complex_mul(num2,complex_ceil(complex_div(num1,num2))))
return g

g=5
a=373
b=433
p=[2561,2534]
u=g**a
print('u :',"{0:.2f}".format(u))
x=complex_div([u,0],p)
print(type(x[0]))
print('x :', x)
y=complex_ceil(x)
z=complex_mul(p,y)
print(z)
##PKa=complex_mod([g**a,0],p)
##print(PKa)

You might also like