Pagini recente » Rating Nancu Bogdan (Tupungato) | Cod sursa (job #1465015) | Atasamentele paginii joi_ora_12.00 | Cod sursa (job #677933) | Cod sursa (job #2580337)
#include <iostream>
#include <fstream>
using namespace std;
int phi(int n)
{
int i, j;
long long unsigned sum = 0;
int p[n+1]={0};
for(i=2;i<=n;i++)
p[i] = i; // we set them all to their index value
for(i=2;i<=n;i++)
{
if(p[i] == i) //if p[i] is prime
{
p[i]--; // daca numarul este prim, atunci toate numerele mai mici decat el vor fi prime cu el
for(j=2*i;j<=n;j+=i)
{
p[j] /= i;
p[j] *= (i-1);
// toti multiplii lui i vor avea numarul de numere mai mici si prime cu el egale cu
}
}
}
for (int i=2;i<=n;i++)
sum += p[i];
sum *= 2;
sum++;
return sum;
}
int main()
{
ifstream in("fractii.in");
ofstream out("fractii.out");
int nr;
in>>nr;
out<<phi(nr);
//cout<<get_nr(nr);
}