Pagini recente » Cod sursa (job #2314188) | Cod sursa (job #3291080) | Cod sursa (job #2763644) | Cod sursa (job #2520227) | Cod sursa (job #2773697)
#include <fstream>
#define NMAX 1000005
using namespace std;
/***************************************/
/// INPUT / OUTPUT
ifstream f("fractii.in");
ofstream g("fractii.out");
/***************************************/
/// GLOBAL DECLARATIONS
int N, euler[NMAX];
long long ans;
/***************************************/
/// FUNCTIONS
void ReadInput();
void Solution();
void Output();
/***************************************/
///------------------------------------------------
inline void ReadInput()
{
f >> N;
}
///------------------------------------------------
inline void Init()
{
for (int i = 1 ; i <= N ; ++ i)
euler[i] = i;
}
///------------------------------------------------
inline void Ciur()
{
for (int i = 2 ; i <= N ; ++ i)
{
if (euler[i] == i)
{
euler[i] --;
for (int j = 2 * i ; j <= N ; j += i)
{
euler[j] /= i;
euler[j] *= (i - 1);
}
}
}
}
///------------------------------------------------
inline void Solution()
{
Init();
Ciur();
for (int i = 2 ; i <= N ; ++ i)
{
ans += euler[i];
}
ans = 2 * ans + 1;
}
///------------------------------------------------
inline void Output()
{
g << ans;
}
///------------------------------------------------
int main()
{
ReadInput();
Solution();
Output();
return 0;
}