CP-templates

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub Misuki743/CP-templates

:warning: numtheory/phi_array.cpp

Code

template<class T, int32_t C>
array<T, C> phi_array(linear_sieve<C> &ls) {
  array<T, C> phi = {};
  if (C > 1) phi[1] = T(1);
  auto &mpf = ls.mpf;
  for(int i = 2; i < C; i++)
    phi[i] = phi[i / mpf[i]] * (mpf[i] == mpf[i / mpf[i]] ? mpf[i] : T(mpf[i] - 1));
  return phi;
}
#line 1 "numtheory/phi_array.cpp"
template<class T, int32_t C>
array<T, C> phi_array(linear_sieve<C> &ls) {
  array<T, C> phi = {};
  if (C > 1) phi[1] = T(1);
  auto &mpf = ls.mpf;
  for(int i = 2; i < C; i++)
    phi[i] = phi[i / mpf[i]] * (mpf[i] == mpf[i / mpf[i]] ? mpf[i] : T(mpf[i] - 1));
  return phi;
}
Back to top page