Pagini recente » Cod sursa (job #2423543) | Cod sursa (job #734247) | Cod sursa (job #2766614) | Cod sursa (job #2300618) | Cod sursa (job #1552646)
#include<fstream>
#define DIM 1000005
using namespace std;
int n, i, j, p, a;
long long sum, t[DIM];
int c[DIM], pr[DIM];
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int main(){
fin>> n;
for(i = 2; i <= n; i++){
if(c[i] == 0){
for(j = i + i; j <= n; j+= i){
c[j] = 1;
pr[j] = i;
}
}
}
for(i = 2; i <= n; i++){
if(c[i] == 0){
t[i] = i - 1;
sum += t[i];
continue;
}
a = i;
p = 1;
while(a % pr[i] == 0){
a /= pr[i];
p *= pr[i];
}
if(a == 1){
t[i] = (pr[i] - 1) * 1LL * (p / pr[i]);
}
else{
t[i] = t[p] * t[a];
}
sum += t[i];
}
sum = 2 * sum + 1;
fout<< sum <<"\n";
return 0;
}