Pagini recente » Cod sursa (job #941145) | Cod sursa (job #1997582) | Cod sursa (job #2022605) | labareala | Cod sursa (job #2404865)
#include <fstream>
#define Nmax 1000001
using namespace std;
long long numarFractii(long long n)
{/*Pentru fiecare numarator verificam cate fractii nu se iau in considerare
=> cati multiplii are numaratorul pana la n (n/i) */
long long phi[Nmax];/*phi[i] -> numarul fractiilor ramase cu numitorul i*/
for(int i=1; i<=n; i++)
phi[i]=i-1;
/*ciurul lui eratostene */
for(int i=1; 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=1; 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;
}