Pagini recente » Istoria paginii runda/sim0004/clasament | Cod sursa (job #1304825) | Cod sursa (job #325524) | Cod sursa (job #2374945) | Cod sursa (job #2456669)
#include<fstream>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
long long k;
long long euler(long long x)
{
long long d,cx=x;
for(d=2; d*d<=x; d+=d%2+1)
{
if(x%d==0)
{
cx/=d;
cx*=d-1;
while(x%d==0)
x/=d;
}
}
if(x>1)
{
cx/=x;
cx*=x-1;
}
return cx;
}
long long solve(long long x)
{
long long i,s=0;
if(x<100000)
{
for(i=1; i<=x; i++)
s+=euler(i);
s*=2;
s-=1;
}
else
{
s=6079301507;
for(i=100001; i<=x; i++)
s+=euler(i);
s*=2;
s-=1;
}
return s;
}
int main()
{
fin>>k;
fout<<solve(k);
}