Problem:
Score : 400 points

Problem Statement

For a positive integer X, let f(X) be the number of positive divisors of X.

Given a positive integer N, find \sum_{K=1}^N K\times f(K).

Constraints

1 \leq N \leq 10^7

Input

Input is given from Standard Input in the following format:

N

Output

Print the value \sum_{K=1}^N K\times f(K).

Sample Input 1

4

Sample Output 1

23

We have f(1)=1, f(2)=2, f(3)=2, and f(4)=3, so the answer is 1\times 1 + 2\times 2 + 3\times 2 + 4\times 3 =23.

Sample Input 2

100

Sample Output 2

26879

Sample Input 3

10000000

Sample Output 3

838627288460105

Watch out for overflows.

Solution in Perl (5.26.1) (judge verdict: Wrong Answer)

use strict;
my ($N,$M,$K) = split(/ /,<>);
my $s = <>; chomp $s;
my @DBA = split(/ /,$s);
my $t = <>; chomp $t;
my @DBB = split(/ /,$t);

my @TA;
my $maxa=0;
my $ttime=0;
my $A=0;
$TA[0]=0;
for(my $i=0;$i<=$#DBA;$i++){
    $TA[$i+1] = $TA[$i] + $DBA[$i];
    if($TA[$i+1] >$K ){
        last;
    }
    $maxa++;
}
my $maxb =0;
my @TB;
$TB[0]=0;

my $j=0;

my $ans= $maxa;
for(my $i=0;$i<=$#DBB;$i++){
    $TB[$i+1] = $TB[$i] + $DBB[$i];
    if($TB[$i+1] >$K ){
        last;
    }
    while(){
        if( $TA[$maxa-$j] + $TB[$i+1] < $K ){last;}
        $j++;
    }
    
    if($ans < ($maxa-$j+$i+1) ){ $ans = ($maxa-$j+$i+1);}
    $maxb++;
}
print "$ans";