| Current Path : /var/www/html/venkat/check1-iws44/ |
| Current File : /var/www/html/venkat/check1-iws44/gcd.py |
import random
def isPrime(n):
rang = int(n**0.5)+1;
for i in range(2,rang):
if n%i==0:
return False
return True
def rprime():
p = 3
q = 20
primes = [i for i in range(p,q) if isPrime(i)]
n = random.choice(primes)
return n
def gcd(a,b):
while a:
a, b = b%a, a
return a
def modinv(a,m):
gcd , x, y = egcd(a,m)
if gcd != 1:
return 0 # modular inverse does not exist
else:
return x % m
def egcd(a,b):
x,y, u,v = 0,1, 1,0
while a != 0:
q, r = b//a, b%a
m, n = x-u*q, y-v*q
b,a, x,y, u,v = a,r, u,v, m,n
gcd = b
return gcd, x, y
aa = 10;
while aa < 10000:
p1 = rprime()
q1 = rprime()
pp = (p1-1)*(q1-1);
#kk = input("inverse: ")
#pp = input("modn: ")
kk = 3;
aa = aa + 1;
print p1, q1, pp, modinv(kk,pp)