Pagini recente » Cod sursa (job #1716873) | Cod sursa (job #945739) | Cod sursa (job #2365641) | Cod sursa (job #928489) | Cod sursa (job #1226092)
#include <cstdio>
using namespace std;
FILE *f=fopen ("fractii.in","r");
FILE *g=fopen ("fractii.out","w");
bool ap[1000002];
long long phi(int n){
if (!ap[n]) return 1LL*(n-1);
long long p=n;
for (long long d=2;d*d<=n;++d){
if (n%d==0){
p=p*(d-1)/d;
while (n%d==0) n/=d;
}
}
if (n!=1) p=p*(n-1)/n;
return p;
}
void ciur (int n){
for (int i=2;i<=n;++i){
if (!ap[i]){
for (int j=i+i;j<=n;j+=i) ap[j]=1;
}
}
}
int main(){
int n;
long long s=0;
fscanf (f,"%d",&n);
ciur (n);
for (int i=2;i<=n;++i) s+=phi(i);
fprintf (g,"%lld",2*s+1);
return 0;
}