Pagini recente » Cod sursa (job #805091) | Cod sursa (job #2819889) | Cod sursa (job #989670) | Cod sursa (job #631751) | Cod sursa (job #2555306)
#include <fstream>
using namespace std;
ifstream f ("fractii.in");
ofstream g ("fractii.out");
int i, n, k, prime[1005];
long long rez;
bool ciur[1505];
void Eratosthene ()
{
int i, j;
ciur[1] = 1;
for (i=2; i<=1000; i++)
{
if (ciur[i] == 0)
{
k ++, prime[k] = i;
for (j=i+i; j<=1000; j+=i)
ciur[j] = 1;
}
}
}
int phi(int x)
{
long long rez = x;
int i;
for (i=1; prime[i]*prime[i] <= x && i <= k; i++)
{
if (x % prime[i] == 0)
{
while (x % prime[i] == 0)
x /= prime[i];
rez = rez * (prime[i] - 1) / prime[i];
}
}
if (x > 1)
rez = rez * (x - 1) / x;
return rez;
}
int main()
{
Eratosthene();
f >> n;
rez = 1;
for (i=2; i<=n; i++)
rez += 2 * phi(i);
g << rez;
return 0;
}