コード例 #1
0
def zad_3():
    n = 5
    solutions = []
    primes = Modular.nPrime(n)
    ran = range(1, 2048)
    for i in range(1, n + 1):
        solutions.append(Modular.ModuloEquatation(1, i, primes[i - 1], ran))

    base = set(solutions[0])
    for i in range(1, n):
        B = set(solutions[i])
        base = base.intersection(B)

    x = min(base)

    print(x)
    is_prime = Modular.is_prime(x)
    print("is prime:", is_prime)

    result1 = Modular.tau(x)
    print(result1)

    result2 = Modular.phi(x)
    print(result2)

    result3 = Modular.jota(x)
    print(result3)

    result4 = Modular.kanon(x)
    print(result4)
コード例 #2
0
def zad_4():
    a = pow(2, 16) - 1
    b = pow(2, 16) + 1

    result1 = Modular.nwd([a, b])
    print("nwd", result1)

    result2 = pow(a, 32) * pow(b, 32)  # nwd is 1
    print("nww", result2)

    print("phi", Modular.phi_by_kanon_pow(a, b))

    nwd, x, y = Modular.euklidesEquatation(a, b)
    kanonx = Modular.kanon(x)
    kanony = Modular.kanon(y)

    print("x:", x)
    print("kanon x:", kanonx)

    print("y:", y)
    print("kanon y:", kanony)
コード例 #3
0
ファイル: 2018.py プロジェクト: Sumerin/Kryptografia_2019
def zad_2():
    base = 2018
    power = 2018
    mod = pow(2, 32) - 1

    a = Modular.pow_modulo(base, power, mod)

    t1 = int(pow(2, 16) - 1)
    result1 = a % t1
    print(" a mod( 2^16 -1)")
    print(result1)

    result2 = Modular.tau(a)
    print(" tau(a)")
    print(result2)

    result3 = Modular.jota(a)
    print(" jota(a)")
    print(result3)

    result4 = Modular.nwd([a, t1])
    print(" nwd(a, 2^16 -1)")
    print(result4)

    result5 = Modular.nww([a, t1])
    print(" nww(a, 2^16 -1)")
    print(result5)

    result61, result62 = Modular.pi_from_probability(a)
    print(" pi(a)")
    print(result61)
    print(result62)

    result7 = Modular.phi_by_kanon(a)
    print(" euler(a)")
    print(result7)

    result8 = Modular.is_prime(a)
    t2 = Modular.kanon(a)
    print(" zad2.1")
    print(result8)
    print(min(t2))

    result9 = Modular.nfermat(a)
    print(" zad2.2")
    print(result9)
    print(t2)
コード例 #4
0
    def test_kanon4(self):
        expected = {97: 1}
        a = 97

        result = Modular.kanon(a)
        self.assertEqual(expected, result)
コード例 #5
0
    def test_kanon3(self):
        expected = {2: 1, 5: 1}
        a = 10

        result = Modular.kanon(a)
        self.assertEqual(expected, result)
コード例 #6
0
    def test_kanon2(self):
        expected = {2: 4, 3: 1, 5: 2}
        a = 1200

        result = Modular.kanon(a)
        self.assertEqual(expected, result)
コード例 #7
0
    def test_kanon1(self):
        expected = {2: 5, 3: 1}
        a = 96

        result = Modular.kanon(a)
        self.assertEqual(expected, result)