Pagini recente » Cod sursa (job #2147358) | Cod sursa (job #574185) | Cod sursa (job #1587183) | Cod sursa (job #1575226) | Cod sursa (job #1795586)
#include <iostream>
#include <cstdio>
using namespace std;
FILE *f, *g;
int n;
struct numere
{
long long euler;
};
numere e[1000001];
long long rez;
void ciur()
{
int i, j;
// e[1].sum = e[1].prod = 1;
for(i = 1; i <= n; i ++)
e[i].euler = i;
for(i = 2; i <= n; i += 2)
{
e[i].euler /= 2;
}
for(i = 3; i <= n; i += 2)
{
if (e[i].euler == i)
for(j = i; j <= n; j += i)
{
e[j].euler = e[j].euler / i * (i - 1);
}
}
// for(i = 1; i <= n; i ++)
// printf("*%d ", e[i].euler);
}
void readFile()
{
f = fopen("fractii.in", "r");
fscanf(f, "%d", &n);
fclose(f);
}
void solve()
{
int i;
// printf("%d %d\n", n, e[n].euler);
// rez = e[n].euler;
rez = 1 + e[n].euler * 2;
for(i = 2; i < n; i ++)
{
/* printf("%d\n", rez);
rez += e[i].euler;
printf("%d\n", rez);
int x = n - i;
rez += (x - (x * e[i].sum / e[i].prod));*/
// printf("%lld\n", rez);
rez += e[i].euler * 2;
}
}
void printFile()
{
g = fopen("fractii.out", "w");
fprintf(g, "%lld\n", rez);
fclose(g);
}
int main()
{
readFile();
ciur();
solve();
printFile();
return 0;
}