CP-templates

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

View the Project on GitHub Misuki743/CP-templates

:warning: numtheory/dirichlet_convolution.cpp

Code

template<class T>
vector<T> dirichlet_convolution(vector<T> a, vector<T> b) {
  assert(size(a) == size(b));
  vector<T> c(size(a));
  for(int i = 1; i < ssize(a); i++)
    for(int j = 1; i * j < ssize(a); j++)
      c[i * j] += a[i] * b[j];
  return c;
}
#line 1 "numtheory/dirichlet_convolution.cpp"
template<class T>
vector<T> dirichlet_convolution(vector<T> a, vector<T> b) {
  assert(size(a) == size(b));
  vector<T> c(size(a));
  for(int i = 1; i < ssize(a); i++)
    for(int j = 1; i * j < ssize(a); j++)
      c[i * j] += a[i] * b[j];
  return c;
}
Back to top page