Pagini recente » Cod sursa (job #3341945) | Istoria paginii utilizator/stefan____ | Cod sursa (job #3314373) | Monitorul de evaluare | Cod sursa (job #785662)
Cod sursa(job #785662)
#include <iostream>
#include <vector>
#include <cstdio>
#include <set>
using namespace std;
#define MAX 1000001
bool primes[MAX];
int euler[MAX];
set<int> primeFact[MAX];
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
int n;
cin >> n;
for(int i=0;i<MAX;i++)
{
primes[i] = true;
euler[i] = i;
}
for(int i=2;i<MAX;i++)
{
if (primes[i])
{
for(int j=i;j<MAX;j+=i)
{
primes[j] = false;
euler[j] = euler[j] / i * (i-1);
}
}
}
long long total=0;
//for(int i=1;i<=100000;i++)
//cout << i << " -> "<< euler[i]<<endl;
for(int i=1;i<=n;i++)
{
total+= 2*euler[i];
}
if (n==0)
cout << 0;
else
cout << total-1<<endl;
}
// 6 = 2*3
// 1*2
//8
//1 2 4 6 8