ASFDASFDA

 avatar
unknown
python
6 months ago
1.9 kB
4
Indexable
import random

p = 2147

def powMod(x, a):
    y = 1
    while(a!=0):
        y = y * x
        if(len(str(y%(10**len(str(p))))) > len(str(p))):
            y = y % (10**len(str(p)))
        a = a - 1
    return y%p

def inversePowMod(a, p):
    for i in range(p):
        if a*i % p == 1:
            return i
    return - 1

#print(powMod(1407, 2301))
#print(inversePowMod(2301,2147))


def factorizare(x):
    lista = []
    if(x == 0):
        print("nu are factori")
    elif(x == 1):
        lista.append(1, 1)
    else:
        i = 2
        while(i <= x):
            k = 0
            while(x%i==0):
                x = x/i
                k = k + 1
            if k != 0:
                lista.append([i, k])
            i = i + 1
    if (lista != []):
        print("[factor, putere]")
        for y in lista:
            print(y)

def isPrime(n, k):
    if n <= 1 or n == 4:
        return False
    if n <= 3:
        return True

    d = n - 1
    while(d % 2 == 0):
        d = d//2
    for i in range(k):
        if(millerTest(d, n) == False):
            return False

    return True

def millerTest(d, n):
    a = 2 + random.randint(1, n-4)

    x = power(a, d, n);

    if (x == 1 or x == n - 1):
        return True

    while(d != n - 1):
        x = (x*x)%n
        d=d*2

        if x == 1:
            return False
        if x == n - 1:
            return True
    return False

def power(x, y, p):
    res = 1

    x = x % p
    while(y>0):
        if y & 1:
            res = res * x % p

        y = y >> 1
        x = x * x % p
    return res

#print(isPrime(1000000016531, 4))

def cmmdc(n , m):
    if m > n:
        x = m
        m = n
        n = x
    while (m != 0):
        r = n % m
        n = m
        m = r
        return n

#print(cmmdc(555,15))



def RSA():
Editor is loading...
Leave a Comment