Pagini recente » Cod sursa (job #177350) | Istoria paginii utilizator/rizi_san | Cod sursa (job #2493302) | Cod sursa (job #1130114) | Cod sursa (job #113053)
Cod sursa(job #113053)
#include<fstream.h>
#include<math.h>
#define nrfe 1000001
long long n, a[nrfe], x[nrfe], i, j;
long long e, aux, d, sol, aux2, aux3;
void citire(){
ifstream fin("fractii.in");
fin>>n;
fin.close();
}
void eratostene(){
for(i=2;i<=n;i++)
if(a[i]==0)
for(j=2;j<=n/i;j++) a[i*j]=i;
}
void afisare(){
ofstream fout("fractii.out");
fout<<sol<<'\n';
fout.close();
}
long long fc(long long nr){
if(!a[nr]) return (nr-1);
else{d=a[nr];
aux=nr;
e=0;
while(aux>0 && aux%d==0) {
e++;
aux/=d;
}
if(aux==1) return ((d-1)*pow(d,e-1));
else {aux2=pow(d,e);
aux2=x[aux2];
aux2*=x[aux];
return aux2;
}
}
}
int main(){
memset(a,0,sizeof(a));
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;
}