Pagini recente » Cod sursa (job #2371153) | Cod sursa (job #964997) | Cod sursa (job #299070) | Cod sursa (job #484290) | Cod sursa (job #140672)
Cod sursa(job #140672)
#include <iostream.h>
#include <fstream.h>
#include <math.h>
ifstream f("fractii.in");
ofstream g("fractii.out");
long long prod,i,p,s,n,j,k,n_aux;
int prime[1000010];
long phi[1000010];
int gasit;
int main(){
phi[1]=1;
f>>n;
for (j=2;j<=n;j++)
if (prime[j]==0){
k=1;
while(j*(k+1)<=n){
prime[j*(++k)]=1;
}
}
for (i=2;i<=n;i++)
{ prod=1;gasit=0;
if (prime[i]==0)phi[i]=(i-1);
else
{for(j=2;j<=i/2 &&!gasit;j++){
if (prime[j]==0 && i%j==0){
p=0;gasit=1;
n_aux=i;
while (!(n_aux%j)){
n_aux/=j;p++;
}
phi[i]=(j-1)*phi[n_aux]*(i/n_aux)/j;
}
}}
}
for (i=1;i<=n;i++)
s+=phi[i]*2;
s--;
g<<s;
f.close();
g.close();
return 0;
}