Pagini recente » Cod sursa (job #1533823) | Cod sursa (job #1870297) | Cod sursa (job #119384) | Cod sursa (job #871694) | Cod sursa (job #1534774)
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int phi[1000000];
int cmmdc(int a, int b)
{
if (!b)
return a;
return cmmdc(b, a % b);
}
int main()
{
freopen("fractii.in", "r", stdin);
freopen("fractii.out", "w", stdout);
ios_base::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
for (int i = 1; i <= n; ++i)
phi[i] = i-1;
for (int i = 2; i <= n; ++i)
for (int j = 2*i; j <= n; j += i)
phi[j] -= phi[i];
long long suma = n;
for(int i = 2; i <= n; i ++)
{
float s = (float)(n)/(float)(i);
suma += phi[i] * floor(n/i);
if((s - floor(n/i)) > 0.0001)
for(int j =i * floor(n/i) ; j <= n; j ++)
{
if(cmmdc(n, j) == 1)
suma ++;
}
}
printf("%lld", suma);
return 0;
}