Pagini recente » Cod sursa (job #1702206) | Cod sursa (job #750413) | Cod sursa (job #390579) | Borderou de evaluare (job #1914321) | Cod sursa (job #1985129)
#include <fstream>
#include <iostream>
#include <cmath>
using namespace std;
#define NMAX 1000100
int ciur[NMAX];
void pregen(){
int lim = sqrt(NMAX);
for(int i = 2; i <= lim; i++)
if(!ciur[i]){
for(int j = i * i; j < NMAX; j += i)
ciur[j] = i;
}
}
int main(){
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int n;
fin >> n;
pregen();
long long rasp = 0;
for(int i = 2; i <= n; i++){
int tmp = i, ci = i, q;
while(ci > 1 && ciur[ci]){
tmp /= ciur[ci];
tmp *= ciur[ci] - 1;
q = ciur[ci];
while(!(ci % q))
ci /= q;
}
if(ci > 1){
tmp /= ci;
tmp *= ci - 1;
}
rasp += tmp;
}
fout << rasp * 2 + 1;
}