Pagini recente » Cod sursa (job #2547675) | Cod sursa (job #2548070) | Cod sursa (job #2169856) | Cod sursa (job #3127119) | Cod sursa (job #2114123)
#include <iostream>
#include <fstream>
#define M 1000000
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
bool p[1000001];
int prime[80000];
int n;
void ciur()
{
p[0]=1;
p[1]=1;
for(int i=2;i<=1000000;i++)
if(!p[i])
for(int j=2;i*j<=1000000;j++)p[i*j]=1;
}
int nr;
void mutprimele()
{
nr=0;
for(int i=1;i<=1000000;i++)if(p[i]==0)prime[++nr]=i;
}
int phi(int n)
{
int i;
int r=1;
if(n==1)return 1;
for(i=1;i<=nr&&n>1;i++)
{
int r1=1;
while(n%prime[i]==0){n/=prime[i];r1*=prime[i];}
if(r1!=1)r=r*r1/prime[i]*(prime[i]-1);
}
return r;
}
void sol()
{
f>>n;
int i;
long long s=0;
for(i=1;i<=n;i++)s+=phi(i);
s*=2;
s--;
g<<s;
}
int main()
{
ciur();
mutprimele();
sol();
return 0;
}