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)
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)
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)
def test_kanon4(self): expected = {97: 1} a = 97 result = Modular.kanon(a) self.assertEqual(expected, result)
def test_kanon3(self): expected = {2: 1, 5: 1} a = 10 result = Modular.kanon(a) self.assertEqual(expected, result)
def test_kanon2(self): expected = {2: 4, 3: 1, 5: 2} a = 1200 result = Modular.kanon(a) self.assertEqual(expected, result)
def test_kanon1(self): expected = {2: 5, 3: 1} a = 96 result = Modular.kanon(a) self.assertEqual(expected, result)