Pagini recente » Istoria paginii utilizator/ciucu_madalina_florentina_322ca | Profil StefaniaIrina | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #2488052)
#include <fstream>
#include <string.h>
#define DIM 1000000
using namespace std;
ifstream fin ("fractii.in");
ofstream fout("fractii.out");
long long x,i,j,c,n,sol,k,y;
bool a[1000010];
int v[1000010],p[80000];
int main () {
fin>>n;
for(i=2;i<=n;i++)
if(v[i]==0){
p[++k]=i;
v[i]=i-1;
sol+=v[i];
for(j=i+i;j<=n;j+=i)
v[j]=1;
}else{
x=i;
for(j=1;j<=k;j++){
if(x%p[j]==0 && x/p[j]>1){
y=x;
c=0;
while(y%p[j]==0)
y/=p[j],c++;
if(y==1){
v[i]=x/p[j]*(p[j]-1);
sol+=v[i];
break;
}
v[i]=(p[j]-1)*v[y]*(x/y/p[j]);
sol+=v[i];
break;
}else if(x%p[j]==0 && x/p[j]==1){
v[i]=i-1;
sol+=v[i];
break;
}
}
}
fout<<sol*2+1;
}