Pagini recente » Cod sursa (job #1328918) | Cod sursa (job #467067) | Cod sursa (job #664673) | Cod sursa (job #1728330) | Cod sursa (job #396004)
Cod sursa(job #396004)
#include<stdio.h>
using namespace std;
#define dim 1000001
#include<math.h>
int n,p[dim],i,j,nr,N,P,v[dim];
long long nrf;
void descompune()
{j=1; nr=0;
while(N>1)
{j++;
while(N%j==0)
{N/=j;
if(p[j]==0)
nr++;
p[j]++; }
}
}
int main ()
{
FILE *f=fopen("fractii.in","r"), *g=fopen("fractii.out","w");
fscanf(f,"%d",&n);
for(i=3;i<=n;i+=2)
if(v[i]==0)
for(j=2;i*j<=n;j++)
v[i*j]=1;
nrf=1;
for(i=3;i<=n;i++)
{N=i;P=1;
if(v[i]==0&&i%2!=0)
P=i-1;
else
{
descompune();
for(j=2;j<=i;j++)
{ if(p[j]!=0)
{
P*=(j-1)*(long long)pow(j,p[j]-1);
nr--;
p[j]=0;
}
if(nr==0)
break;
}
}
nrf+=P;
}
fprintf(g,"%lld",2*nrf+1);
fclose(f);
fclose(g);
return 0;
}