Pagini recente » Cod sursa (job #588429) | Cod sursa (job #2415531) | Cod sursa (job #1593921) | Cod sursa (job #319077) | Cod sursa (job #1757976)
#include<cstdio>
#include<bitset>
const int NMAX=1000002;
std::bitset<NMAX> neprim;
void Ciur(int n)
{
neprim[1]=true;
for(int i=2;i*i<=n;i++)
{
if(neprim[i])
continue;
for(int j=i*i;j<=n;j+=i)
{
neprim[j]=true;
}
}
}
int phi[NMAX];
void Euler(int n)
{
for(int i=1;i<=n;i++)
phi[i]=i;
for(int i=2;i<=n;i++)
{
if(neprim[i])
continue;
for(int j=i;j<=n;j+=i)
{
phi[j]-=phi[j]/i;
}
}
}
int main()
{
FILE *file=fopen("fractii.in","r");
int n;
fscanf(file,"%d ",&n);
fclose(file);
Ciur(n);
Euler(n);
long long rasp=0ll;
for(int i=1;i<=n;i++)
rasp+=2ll*phi[i];
file=fopen("fractii.out","w");
fprintf(file,"%lld ",rasp-1ll);
fclose(file);
return 0;
}