-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample.py
More file actions
84 lines (62 loc) · 1.6 KB
/
example.py
File metadata and controls
84 lines (62 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
from nt_tools.exponentiation import get_smallest_primitive_root
import nt_tools
# mod_integer
print("mod_integer")
nt_tools.M.default_mod = 10**9+7
x = nt_tools.M(1)
y = nt_tools.M(2)
z = x+y
print(x)
print(y)
print(x+y)
print(x-y)
print(x*y)
print(x/y)
print(y**2)
print(y**-1)
print(nt_tools.guess_int_from_modint(nt_tools.M(10, 100)))
print(nt_tools.guess_int_from_modint(nt_tools.M(-10, 100)))
print()
# factorization
print("factorization")
print(nt_tools.factorize(10**18-10))
print(nt_tools.factorize_exponent(10**18-10))
print(nt_tools.p_adic(100, 5))
print(nt_tools.divisors(100))
print()
# arithmetic_functions
print("arithmetic_functions")
print(nt_tools.tau(60))
print(nt_tools.sigma(60))
print(nt_tools.mu(30))
print(nt_tools.phi(60))
print(nt_tools.Omega(60))
print(nt_tools.omega(60))
print()
# diophantine
print("diophantine")
a = 10
b = 14
x, y, g = nt_tools.bezout(a, b)
print("{}({}) + {}({}) = {}".format(a, x, b, y, g))
c = 50
x, y = nt_tools.diophantine(a, b, c)
print("{}({}) + {}({}) = {}".format(a, x, b, y, c))
print(nt_tools.lcm(a, b))
print(repr(nt_tools.crt(nt_tools.M(1, 7), nt_tools.M(2, 5))))
print()
# primes
print("primes")
print(nt_tools.primes_in_range(10, 26))
print(nt_tools.random_prime_in_range(10**9, 10**9+50))
print(nt_tools.is_prime(10**18-11))
print()
# exponentiation
print("exponentiation")
print(nt_tools.order(nt_tools.M(5, 96)))
print(nt_tools.is_quadratic_residue(nt_tools.M(-1, 10)))
print(nt_tools.has_primitive_root(50))
print(nt_tools.get_random_primitive_root(50))
print(nt_tools.get_smallest_primitive_root(50))
print(nt_tools.get_all_primitive_roots(50))
print()