Pagini recente » Diferente pentru problema/nrpits intre reviziile 27 si 12 | Monitorul de evaluare | Diferente pentru problema/piramid intre reviziile 9 si 8 | Diferente pentru echipa-infoarena intre reviziile 48 si 49 | Cod sursa (job #2272493)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("fractii.in");
ofstream out ("fractii.out");
const int VM=1000002;
int e[VM+2];
void euler ()
{
for (int i=1;i<VM;i++) e[i]=i;
for (int i=2;i<VM;i++)
if (e[i]==i)
for (int j=i;j<VM;j+=i)
e[j]=e[j]/i*(i-1);
}
int main()
{
int n,s=0;
in>>n;
euler();
for (int i=1;i<=n;i++)
s=s+2*e[i];
out<<s-1;
return 0;
}