diff options
| author | Gloria Mundi <gloria@gloria-mundi.eu> | 2024-11-16 01:24:14 +0100 |
|---|---|---|
| committer | Gloria Mundi <gloria@gloria-mundi.eu> | 2024-11-16 01:24:14 +0100 |
| commit | 98567ec798aa8ca2cfbcb85c774dd470f30e30d4 (patch) | |
| tree | 5113d5cc24d1ad5f93810b6442ce584a36950dc8 /math/primitiveRoot.cpp | |
| parent | ad3856a6b766087df0036de0b556f4700a6498c9 (diff) | |
| parent | 8d11c6c8213f46f0fa19826917c255edd5d43cb1 (diff) | |
mzuenni tests
Diffstat (limited to 'math/primitiveRoot.cpp')
| -rw-r--r-- | math/primitiveRoot.cpp | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/math/primitiveRoot.cpp b/math/primitiveRoot.cpp deleted file mode 100644 index 464bdb3..0000000 --- a/math/primitiveRoot.cpp +++ /dev/null @@ -1,23 +0,0 @@ -bool isPrimitive(ll g, ll n, ll phi, map<ll, int> phiFacs) { - if (g == 1) return n == 2; - for (auto [f, _] : phiFacs) - if (powMod(g, phi / f, n) == 1) return false; - return true; -} - -bool isPrimitive(ll g, ll n) { - ll phin = phi(n); //isPrime(n) => phi(n) = n - 1 - map<ll, int> phiFacs; - factor(phin, phiFacs); - return isPrimitive(g, n, phin, phiFacs); -} - -ll findPrimitive(ll n) { - ll phin = phi(n); //isPrime(n) => phi(n) = n - 1 - map<ll, int> phiFacs; - factor(phin, phiFacs); - //auch zufällige Reihenfolge möglich! - for (ll res = 1; res < n; res++) - if (isPrimitive(res, n, phin, phiFacs)) return res; - return -1; -} |
