Pagini recente » Cod sursa (job #2293362) | Cod sursa (job #2114445) | Cod sursa (job #3191270) | Cod sursa (job #1932375) | Cod sursa (job #1787421)
#include <iostream>
#include <cmath>
using namespace std;
int v[1000000];
void Euler(int x,int &np)
{
int e,f=2;
while(x>1)
{
e=0;
while(x%f==0)
{
e++;
x/=f;
}
if(e)
np=np+(f-1)*pow(f,(e-1));
f++;
}
}
int main()
{
int n,i,j,nrf=1,np;
cin>>n;
for(i=1; i<=1000000; i++)
v[i]=1;
for(i=2; i<=1000000; i++)
if(v[i]==1)
for(j=2; j*i<=1000000; j++)
v[j*i]=0;
for(i=2; i<=n; i++)
{
if(v[i])
nrf=nrf+2*(i-1);
else
{
np=0;
Euler(i,np);
cout<<np<<'\n';
nrf=nrf+2*np;
}
}
cout<<nrf<<'\n';
return 0;
}