Pagini recente » Cod sursa (job #2937010) | Cod sursa (job #2382712) | Cod sursa (job #897231) | Cod sursa (job #1138907) | Cod sursa (job #1973035)
#include <fstream>
#include <math.h>
#define MAXN 1000005
using namespace std;
ifstream f ("fractii.in");
ofstream g ("fractii.out");
int n;
int c[MAXN];
int phi(int n)
{
double result = n;
for (int p=2; p*p<=n; ++p)
{
if (n % p == 0)
{
while (n % p == 0)
n /= p;
result *= (1 - (1 / (double) p));
}
}
if (n > 1)
result *= (1 - (1 / (double) n));
return result;
}
int main(){
f >> n;
for(int i = 2; i <= n; ++i){
if(!c[i]){
for(int j = 2 * i; j <= n; j += i)
c[j] = 1;
}
}
long long sol = 1;
for(int i = 2; i <= n; ++i){
if(!c[i]) sol += 2 * (i - 1);
else sol += 2 * phi(i);
}
g << sol << '\n';
}