求2到N每个自然数的最小质数因子的和。
输入格式
1个整数N。N范围是 [2,1000000]。
输出格式
输出1个整数。
输入/输出例子1
输入:
15
输出:
59
样例解释:
2=2, 3=3, 4=2*2, 5=5, 6=2*3 ,7=7, 8=2*4, 9=3*3, 10=2*5, 11=11,12=2*6,13=13, 14=2*7,15=3*5。
答案=2+3+2+5+2+7+2+3+2+11+2+13+2+3 = 59
#include <bits/stdc++.h>
using namespace std;
#define Max 1000000
int a[Max];
int main(){
long long n,sum=0;
cin>>n;
a[1]=1;
for(int i=2;i*i<=n;i++)
{
if(a[i]==0)
{
for(int j=i+i;j<=n;j=j+i)
{
if(a[j]==0)
a[j]=i;
}
}
}
for(int i=2;i<=n;i++)
{
if(a[i]==0)
sum+=i;
else
sum+=a[i];
}
cout<<sum;
return 0;
}