sumOfProperDivisorsVec :: V.Vector Word32
sumOfProperDivisorsVec = runST $ do
  vec <- VM.replicate (maxN+1) 1
  VM.write vec 0 0
  VM.write vec 1 0
  forM_ [2..fromIntegral maxN] $ \i ->
    forM_ [i+i,i+i+i..maxN] $ \j ->
      VM.modify vec (+ fromIntegral i) j
  V.unsafeFreeze vec
sumOfProperDivisorsVec :: V.Vector Word32
sumOfProperDivisorsVec = runST $ do
  vec <- VM.replicate (maxN+1) 1
  VM.write vec 0 0
  VM.write vec 1 0
  forM_ [2..fromIntegral maxN] $ \i ->
    forM_ [i+i,i+i+i..maxN] $ \j ->
      VM.modify vec (+ fromIntegral i) j
  V.unsafeFreeze vec
sumOfProperDivisorsVec = runST $ do
  vec <- VM.replicate (maxN+1) 1
  VM.write vec 0 0
  VM.write vec 1 0
  forM_ [2..fromIntegral maxN] $ \i ->
    forM_ [i+i,i+i+i..maxN] $ \j ->
      VM.modify vec (+ fromIntegral i) j
  V.unsafeFreeze vec