Pagini recente » Cod sursa (job #2447050) | Cod sursa (job #2270761) | Cod sursa (job #1662757) | Cod sursa (job #548939) | Cod sursa (job #2414917)
#include <fstream>
#include <string.h>
#include <cmath>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
int n;
long long dp[1000005];
struct divizor
{
int div,put;
};
long long indicator(int x)
{
divizor d[8];
memset(d,0,sizeof(d));
int di=2,k=0;
long long sol=1;
while(x>1)
{
if(x%di==0)
{
int p=0;
while(x%di==0)
x/=di,p++;
d[++k].div=di;
d[k].put=p;
}
di++;
}
for(int i=1;i<=k;i++)
sol*=(d[i].div-1)*(pow(d[i].div,d[i].put-1));
return sol;
}
int main()
{
f>>n;
for(int i=1;i<=n;i++)
dp[i]=dp[i-1]+2*indicator(i);
g<<dp[n]-1<<'\n';
return 0;
}