Pagini recente » Diferente pentru olimpici intre reviziile 180 si 31 | Profil bercaru_cristian | Atasamentele paginii Clasament winners29 | Cod sursa (job #2054574) | Cod sursa (job #2328080)
#include <iostream>
#include <fstream>
using namespace std;
///Determinati nr. de fractii ireductibile cu numitorul si numaratorul mai mici decat un nr. n;
long long v[1000001],u[1000001];
int main()
{
ifstream fin ("fractii.in");
ofstream fout ("fractii.out");
long long n,s=-1;
fin>>n;
for (int i=0; i<=n; i++)
{
u[i]=i;
}
for (int i=2; i<=n; i+=2)
{
if (i!=2)
v[i]=1;
u[i]=u[i]/2*1;
}
for (int i=3; i<=n; i+=2)
{
if (!v[i])
for (int j=i; j<=n; j+=i)
{
if (j!=i)
v[j]=1;
u[j]=u[j]/i*(i-1);
}
}
for (int i=0; i<=n; i++)
{
s+=2*u[i];
}
fout<<s;
fout.flush();
}