Pagini recente » Cod sursa (job #780469) | Cod sursa (job #1714115) | Cod sursa (job #1367967) | Cod sursa (job #466928) | Cod sursa (job #1520340)
#include<fstream>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
long long sol;
long long n,p[40005];
char w[1000005];
void ciur(){
w[0]=w[1]=1;
for(int i=2;i<=n;i++){
if(w[i]==0){
p[++p[0]]=i;
for(int j=i+i;j<=n;j+=i){
w[j]=1;
}
}
}
return ;
}
long long euler(int x){
if(x==1){
return 1;
}else{
long long rez=1;
for(int i=1;i<=p[0];i++){
if( x % p[i] == 0 ){
long long P = 1;
while( x % p[i] == 0 ){
P *= p[i];
x /= p[i];
}
P/=p[i];
rez = rez * ( p[i] - 1 ) * P;
if(x==1) break;
}
}
return 2 * rez;
}
}
int main(){
fin>>n;
ciur();
for(int i=1;i<=n;i++){
sol+=euler(i);
}
fout<<sol<<"\n";
return 0;
}