Sum of divisors, a congruence

133 Views Asked by At

Let $\sigma_r(n)=\sum_{d|n}d^r$ where the sum is over all the integers $d=1,\dots,n$ which divide $n$. I am conjecturing

$$\sum_{m=1}^{p-1}m^2 \sigma_3(m)\sigma_3(p-m)\not\equiv 0\pmod{p^2}$$ for any prime $p>3$.

I have checked the truth of this statement up to $p\sim 30'000$ with some C++ program I wrote, but going above that would require to use some arbitrary precision library (which I tried, but failed).

Can anyone test the conjecture for some higher bound? Also, any ideas on how to attack the problem/any semi-obvious reason why this shouldn't be true?

Without going too much into details, this formula comes from fiddling with the Fourier coefficients of the Eisenstein series for $SL_2(\mathbb{Z})$. I have no reason to assume the conjecture is true (or false) but I have absolutely no idea on how to start working on it, mostly because it mixes "additive" (sum) and "multiplicative" ($\sigma$) number theory, so I am not actually expecting it to be easy.

2

There are 2 best solutions below

0
On
3
 p 3  m  1  piece 9 % p 0  total % p  0
 p 3  m  2  piece 36 % p 0  total % p  0


7
 p 7  m  1  piece 252 % p 0  total % p  0
 p 7  m  2  piece 4536 % p 0  total % p  0
 p 7  m  3  piece 18396 % p 0  total % p  0
 p 7  m  4  piece 32704 % p 0  total % p  0
 p 7  m  5  piece 28350 % p 0  total % p  0
 p 7  m  6  piece 9072 % p 0  total % p  0


2411
 p 2411  m  1  piece 15873189948 % p 154  total % p  154
 p 2411  m  2  piece 522317351808 % p 1919  total % p  2073
 p 2411  m  3  piece 4032047859840 % p 649  total % p  311
 p 2411  m  4  piece 16288822085760 % p 1760  total % p  2071
 p 2411  m  5  piece 51185178147600 % p 1707  total % p  1367
 p 2411  m  6  piece 127266769655424 % p 1833  total % p  789
 p 2411  m  7  piece 267116552379376 % p 15  total % p  804
 p 2411  m  8  piece 539494929792000 % p 169  total % p  973
 p 2411  m  9  piece 955987976734506 % p 466  total % p  1439
 p 2411  m  10  piece 1574191448033400 % p 1558  total % p  586
....................................
...................................
 p 2411  m  2377  piece 3356012503851226491636 % p 1684  total % p  808
 p 2411  m  2378  piece 3190789380291306958080 % p 1750  total % p  147
 p 2411  m  2379  piece 2960780740841490748272 % p 2094  total % p  2241
 p 2411  m  2380  piece 2623859483328740966400 % p 1817  total % p  1647
 p 2411  m  2381  piece 2429786210092738008624 % p 569  total % p  2216
 p 2411  m  2382  piece 2182063489071006905280 % p 789  total % p  594
 p 2411  m  2383  piece 1929752065541074413184 % p 1663  total % p  2257
 p 2411  m  2384  piece 1798833517959356928000 % p 666  total % p  512
 p 2411  m  2385  piece 1597879094624901862200 % p 1193  total % p  1705
 p 2411  m  2386  piece 1370291143767932661912 % p 91  total % p  1796
 p 2411  m  2387  piece 1274034129146676817920 % p 1439  total % p  824
 p 2411  m  2388  piece 1117707131027766988800 % p 2284  total % p  697
 p 2411  m  2389  piece 932883653196991580760 % p 894  total % p  1591
 p 2411  m  2390  piece 851763577256879616000 % p 510  total % p  2101
 p 2411  m  2391  piece 745393418594034655536 % p 1222  total % p  912
 p 2411  m  2392  piece 614114315923194777600 % p 434  total % p  1346
 p 2411  m  2393  piece 534628223770997546946 % p 681  total % p  2027
 p 2411  m  2394  piece 452797886969429863680 % p 546  total % p  162
 p 2411  m  2395  piece 371814879768377976000 % p 2212  total % p  2374
 p 2411  m  2396  piece 317764614224976307200 % p 139  total % p  102
 p 2411  m  2397  piece 254113630156589478912 % p 1403  total % p  1505
 p 2411  m  2398  piece 196224218935781762880 % p 100  total % p  1605
 p 2411  m  2399  piece 162417241944613756800 % p 91  total % p  1696
 p 2411  m  2400  piece 126716478830807040000 % p 129  total % p  1825
 p 2411  m  2401  piece 90749004338143923534 % p 1558  total % p  972
 p 2411  m  2402  piece 68094716722460651304 % p 466  total % p  1438
 p 2411  m  2403  piece 48676005906957702000 % p 169  total % p  1607
 p 2411  m  2404  piece 31504576599504649984 % p 15  total % p  1622
 p 2411  m  2405  piece 20447616037672605600 % p 1833  total % p  1044
 p 2411  m  2406  piece 11852104077089607744 % p 1707  total % p  340
 p 2411  m  2407  piece 5898232361771333640 % p 1760  total % p  2100
 p 2411  m  2408  piece 2597742706839920640 % p 649  total % p  338
 p 2411  m  2409  piece 757788590929420512 % p 1919  total % p  2257
 p 2411  m  2410  piece 92193074536978800 % p 154  total % p  0
Thu May 18 09:33:58 PDT 2017
1
On

file should be named Angelo.cc

get some local help installing https://gmplib.org/

As currently set, does primes up to 3000, first checks whether the total is 0 mod p, if yes then it does it over but prints out each line


#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <strstream>
#include <list>
#include <set>
#include <math.h>
#include <iomanip>
#include <string>
#include <algorithm>
#include <iterator>
#include <gmp.h>
#include <gmpxx.h>


using namespace std;

//   g++  -o Angelo Angelo.cc  -lgmp -lgmpxx

//   ./Angelo


// ./Angelo > Angelo.txt

int mp_PrimeQ( mpz_class  i)
{
  if ( i <= 0 ) return 0;
  else if ( i == 1 ) return 1;
  else return  mpz_probab_prime_p( i.get_mpz_t() , 50 );
} // mp_PrimeQ

set<mpz_class> mp_Divisors( mpz_class  i)
{
  set<mpz_class> sofar, more;
    set<mpz_class>::iterator iter;
  sofar.insert(1);
  more.clear();

  mpz_class p = 2;
   mpz_class  temp = i;
  if (temp < 0 )
  {
    temp *= -1;

  }


  if ( temp > 1)
  {
    int primefac = 0;
    while( temp > 1 && p * p <= temp)  // WWWWWWWWWWWWWWWWWWW
    {
      if (temp % p == 0)
      {
        ++primefac;

        temp /= p;
        int exponent = 1;
          mpz_class power = p;
          for(iter = sofar.begin() ;  iter != sofar.end(); ++iter)
          {
             more.insert( power * *iter );
          }
        while (temp % p == 0)
        {
          temp /= p;
          ++exponent;
          power *= p;
           for(iter = sofar.begin() ;  iter != sofar.end(); ++iter)
          {
             more.insert( power * *iter );
          }
        } // while p is fac

         for(iter = more.begin() ;  iter != more.end(); ++iter)
          {
             sofar.insert(  *iter );
          }
          more.clear();
      }  // if p is factor
      ++p;
    } // while p

    if ( temp > 1) {
        for(iter = sofar.begin() ;  iter != sofar.end(); ++iter)
          {
             more.insert( temp * *iter );
          }
        for(iter = more.begin() ;  iter != more.end(); ++iter)
          {
             sofar.insert(  *iter );
          }
          more.clear();
    }
  } // temp > 1
  return sofar;
} // mp_Divisors

mpz_class mp_Sigma_K(mpz_class i, int k)
{
     set<mpz_class> div = mp_Divisors(   i);
  mpz_class sig = 0;
  mpz_class d;
   set<mpz_class>::iterator iter;
    for(iter = div.begin() ;    iter != div.end() ; ++iter)
    {
      mpz_class f = 1;
      d = *iter;
      for(int j = 1; j <= k; ++j) f *= d;
       sig += f;
    }
  return sig;
}// mp_Sigma_K


int main()
{
  for(mpz_class p = 3; p < 3000; p += 2){
  if( mp_PrimeQ(p) ){
  // cout << endl << endl << p << endl;
    mpz_class total = 0;
    for(mpz_class m = 1; m < p; ++m){
      mpz_class piece = m * m *  mp_Sigma_K(m, 3)  *  mp_Sigma_K( p - m, 3)  ;
      total += piece;
    //  cout << " p " << p << "  m  "  << m << "  piece  % p " << piece % p   << "  total % p  " << total % p << endl;
     } //  for m

    if( total % p == 0) 
    {
       cout << endl << endl << p << endl;
   total = 0;
    for(mpz_class m = 1; m < p; ++m){
      mpz_class piece = m * m *  mp_Sigma_K(m, 3)  *  mp_Sigma_K( p - m, 3)  ;
      total += piece;
      cout << " p " << p << "  m  "  << m << "  piece " << piece << " % p " << piece % p   << "  total % p  " << total % p << endl;
     } //  for m
    }



    } // if prime
  } // fopr p
  system("date");
  return 0;
}

//        


//   g++  -o Angelo Angelo.cc  -lgmp -lgmpxx