Блог пользователя Marwan58

Автор Marwan58, история, 4 года назад, По-английски

Is there an efficient way to calculate the sum of lcm(x,y) for every value x and y such that 1<=x<=n && 1<=y<=n with a given n ?

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
4 года назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

Mobius Inversion

You can also do dp where you dp[i] is sum of all x * y numbers with gcd(x, y) equal to i, and to transition u find with basic math sum of all x * y with gcd(x, y) >= i by taking sum of all multiples of i and squaring it like sieve then in sieve like fashion subtract out dp values that are multiples of i as that gets rid of overcounting. Obviously you then just take sum of dp[i] / i for all dp values. I'm p sure this dp method and mobius inversion are almost always interchangeable but not sure...