Pagini recente » Cod sursa (job #1639937) | Cod sursa (job #734321) | Cod sursa (job #979121) | Cod sursa (job #1284534) | Cod sursa (job #2404867)
#include <fstream>
#define Nmax 1000001
using namespace std;
long long numarFractii(int n)
{/*Pentru fiecare numarator verificam cate fractii nu se iau in considerare
=> cati multiplii are numaratorul pana la n (n/i) */
int phi[Nmax];/*phi[i] -> numarul fractiilor ramase cu numitorul i*/
for(int i=2; i<=n; i++)
phi[i]=i-1;
/*ciurul lui eratostene */
for(int i=2; i<=n/2; i++)
for(int j=2*i; j<=n; j+=i)
phi[j]=phi[j]-phi[i];/*pentru fiecare multiplu al lui i eliminam fractiile i/j */
long long rez=0;
for(int i=2; i<=n; i++)
rez+=phi[i];
return 2*rez + 1;
}
int main()
{ifstream in("fractii.in");
int n;
in>>n;
in.close();
ofstream out("fractii.out");
out<<numarFractii(n);
out.close();
return 0;
}