Pagini recente » Cod sursa (job #401531) | Cod sursa (job #759718) | Cod sursa (job #1171776) | Arhiva de probleme | Cod sursa (job #372885)
Cod sursa(job #372885)
# include <fstream>
using namespace std;
int n, p[1000002];
ofstream fout ("fractii.out");
void erat (int n)
{
int i, j;
p[1]=0;
p[2]=0;
for (i=3;i<=n;i++)
{
if (i%2==0 )
p[i]=-(i/2-1);
else
p[i]=i;
}
for (j=3;j<=n;j+=2)
if (p[j]==j)
{
p[j]=0;
for (i=2;i*j<=n;i++)
{
if (p[i*j]==i*j)
p[i*j]=-(i-1);
else
p[i*j]-=(i-1+p[i]);
}/*
for (int k=1;k<=n;k++)
fout<<p[k]<<" ";
fout<<endl;*/
}
}
unsigned long long calcul (int n)
{
unsigned long long a=1, r=1;
int i;
for (i=2;i<=n;i++)
{
r=a+2*(i-1+p[i]);
a=r;
}
return r;
}
int main ()
{
ifstream fin ("fractii.in");
fin>>n;
erat (n);
fout<<calcul (n);
return 0;
}