src/nt/euler_phi/lib.hpp
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "../pfactors/lib.hpp" | ||
| 4 | |||
| 5 | namespace tifa_libs { | ||
| 6 | |||
| 7 | 360 | CEXP u64 euler_phi(u64 n, spn<std::pair<u64, u32>> pf_exp) NE { | |
| 8 |
2/2✓ Branch 7 taken 366 times.
✓ Branch 8 taken 360 times.
|
726 | for (auto CR[p, _] : pf_exp) n = n / p * (p - 1); |
| 9 | 360 | return n; | |
| 10 | } | ||
| 11 | 290470 | CEXP u64 euler_phi(u64 n, spnuu pfactor) NE { | |
| 12 |
2/2✓ Branch 5 taken 402986 times.
✓ Branch 6 taken 290470 times.
|
693456 | for (auto CR p : pfactor) n = n / p * (p - 1); |
| 13 | 290470 | return n; | |
| 14 | } | ||
| 15 | 290470 | inline u64 euler_phi(u64 n) NE { return euler_phi(n, pfactors(n)); } | |
| 16 | |||
| 17 | } // namespace tifa_libs | ||
| 18 |