Pagini recente » Cod sursa (job #2274062) | Cod sursa (job #501281) | Cod sursa (job #2807738) | Cod sursa (job #1003897) | Cod sursa (job #3273191)
#include <bits/stdc++.h>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
int j,Min[1000005];
bool p[1000005];
void ciur()
{
int i;
for(i=2;i*i<=1000000;i++)
if(p[i]==false)
for(j=2*i;j<=1000000;j+=i)
{
p[j]=true;
if(!Min[j])Min[j]=i;
}
for(i=1;i<=1000000;i++)
if(!p[i])Min[i]=i;
}
int euler( int n)
{
int r=n, d=2;
while(n>1)
{
d=Min[n];
r=(r/d)*(d-1);
while(n%d==0)n/=d;
}
return r;
}
int main()
{
int n;
f>>n; int nr=1;
ciur();
for(int i=2;i<=n;i++)
{
nr+=euler(i)*2;
}
g<<nr;
return 0;
}