Pagini recente » Cod sursa (job #2191925) | Cod sursa (job #77856) | Cod sursa (job #993325) | Cod sursa (job #2433112) | Cod sursa (job #113042)
Cod sursa(job #113042)
#include<fstream.h>
#include<math.h>
#define nrfe 100001
long int n, a[nrfe], x[nrfe], i, j;
long int e, aux, d, sol;
void citire(){
ifstream fin("fractii.in");
fin>>n;
fin.close();
}
void eratostene(){
for(i=2;i<=n;i++)
if(!a[i])
for(j=2;j<=n/i;j++) a[i*j]=i;
}
void afisare(){
ofstream fout("fractii.out");
fout<<sol<<'\n';
fout.close();
}
long int fc(long int nr){
if(!a[nr]) return (nr-1);
else{d=a[nr];
aux=nr;
e=0;
while(aux>0 && !aux%d) {
e++;
aux/=d;
}
if(aux==1) return ((d-1)*pow(d,e-1));
else return (x[pow(d,e)]*x[aux]);
}
}
int main(){
citire();
x[1]=0, x[2]=1, x[3]=2;
eratostene();
for(i=4;i<=n;i++) x[i]=fc(i);
sol=0;
for(i=2;i<=n;i++) sol+=x[i];
sol*=2;
sol++;
afisare();
return 0;
}