Pagini recente » Cod sursa (job #1547879) | Istoria paginii utilizator/johngiumanca | Istoria paginii runda/avram_simulare_2/clasament | Diferente pentru utilizator/robybrasov intre reviziile 57 si 56 | Cod sursa (job #2553587)
#include <fstream>
//φ(n)
//CERINTA : Se da numarul n, cate fractii ireductibile se pot forma cu elementele multimii {1, 2, 3, ... ,n}
using namespace std;
ifstream in("fractii.in");
ofstream out("fractii.out");
int phi(int n)
{
int r = n , d = 2;
while(n > 1)
{
if(n % d == 0)
{
r = r / d * (d - 1);
while(n % d == 0)
n /= d;
}
d ++;
if(d * d > n)
d = n;
}
return r;
}
/*
int* phi2(int n)
{
int *partial;
for(int i = 1; i <= n ; i++)
partial[i] = i;
for(int i = 2; i <= n ; i++)
if(partial[i] == i)
{
partial[i] --;
for(int j = 2; j * i <= n ; j++)
partial[i * j] = partial[i * j] / i * (i - 1);
}
return partial;
}
*/
int main()
{
int n , s = 0;
in>>n;
//int *vec = phi2(n);
for(int i = 1; i <=n; i++)
s += 2 * phi(i);
out<<s-1;
}