Pagini recente » Cod sursa (job #200443) | Cod sursa (job #2129881) | Cod sursa (job #2710939) | Cod sursa (job #3136912) | Cod sursa (job #2488036)
#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<=1000000;i++)
if(v[i]==0){
p[++k]=i;
for(j=i+i;j<=1000000;j+=i)
v[j]=1;
}
for(i=1;i<=k;i++)
for(j=p[i];j<=1000000;j*=p[i])
v[j]=j/p[i]*(p[i]-1);
for(i=2;i<=n;i++){
x=i;
y=i;
if(v[i]==0)
sol+=i-1;
else if(v[i]>1)
sol+=v[i];
else if(i==2)
sol++;
else{
for(j=1;j<=k && p[j]<=x && y>1;j++)
if(x%p[j]==0){
while(y%p[j]==0)
y/=p[j];
x=x-x/p[j];
}
sol+=x;
}
}
fout<<sol*2+1;
}