Pagini recente » Cod sursa (job #1390642) | Cod sursa (job #2151882) | Rating Tiberiu Iorgulescu 321CA (Iorgulescu_Tiberiu_321CA) | Cod sursa (job #2299178) | Cod sursa (job #2941188)
#include <bits/stdc++.h>
using namespace std;
ifstream in("fractii.in");
ofstream out("fractii.out");
int n,i,j,dv[1000001],nj;
bool p[1000001];
long long s;
int main()
{
in>>n;
for(i=2,s=n; i<=n; ++i,nj=0)
{
if(p[i]==0)
{
p[i]=1;
++dv[i];
++nj;
for(j=2; j*i<=n; ++j)
{
if(p[i*j]==0)
++dv[i];
++nj;
}
for(j=2; j*i<=n; ++j)
{
if(p[i*j]==0)
dv[i*j]+=nj,p[i*j]=1;
else
dv[i*j]+=dv[i];
}
s+=n-nj;
}
else s+=n-dv[i];
}
out<<s;
}
/*
10
dv[2]=5;
dv[4]=5;
dv[6]=7;
dv[8]=5;
dv[10]=5;
dv[5]=1;
dv[3]=2;
dv[9]=
0 1 1 1 0 1 0 1 1 1
1 2 3 4 5 6 7 8 9 10
s=
*/