Pagini recente » Cod sursa (job #1587000) | Cod sursa (job #1159296) | Cod sursa (job #767464) | Cod sursa (job #1735555) | Cod sursa (job #220477)
Cod sursa(job #220477)
#include <fstream>
#define NMAX 1000001
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int phi[NMAX],lp[NMAX];
int main()
{
int N;
fin>>N;
long long res = 1ll; phi[1] = lp[1] = 1;
for(int i = 2; i <= N; ++i)
{
if(!phi[i])
phi[i] = i - 1, lp[i] = i; //i e prim
for(int j = 2; i * j <= N && j <= lp[i] ; ++j)
if(phi[j] == j - 1) {
phi[i * j] = i%j ? phi[i] * phi[j] : phi[i] * j;
lp[i * j] = j;
}
res += 2*phi[i];
}
fout<<res;
}