Pagini recente » Cod sursa (job #1560148) | Cod sursa (job #1935232) | Cod sursa (job #1793377) | Cod sursa (job #1300134) | Cod sursa (job #27872)
Cod sursa(job #27872)
#include<fstream.h>
#define lun 1000004
ifstream f("fractii.in");
ofstream g("fractii.out");
long long n,sum;
int v[lun];
long long prim[500000],adr=1;
void filtrare(long n)
{
prim[adr++]=2;
int ok=1;
long long pas=2,poz=2;
v[1]=0;
while(ok)
{
ok=0;
for(long long i=poz*poz;i<=n;i+=pas)
v[i]=0;
for(long long j=poz+1;j<=n;j++)
if(v[j])
{
poz=pas=j;
prim[adr++]=j;
ok=1;
break;
}
}
}
int main()
{
memset(v,1,sizeof(v));
memset(prim,9999999,sizeof(prim));
f>>n;
filtrare(n);
long long sum=1;
for(long long i=2;i<=n;i++)
{
long long pr=i;
for(long int k=1;prim[k]<=i/2+1;k++)
if(pr%prim[k]==0)
pr=pr-(pr/prim[k]);
sum+=pr*2;
}
g<<sum;
g.close();
return 0;
}