Pagini recente » Cod sursa (job #1784057) | Cod sursa (job #828002) | Cod sursa (job #2149834) | Cod sursa (job #1639716) | Cod sursa (job #203217)
Cod sursa(job #203217)
#include <stdio.h>
#include <math.h>
#define maxl 1000010
int i,j,n,m,k,nr;
int ciur[maxl];
int divi[maxl][10];
long long sol;
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%d",&n);
for (i=2; i<=n; i++)
if (ciur[i]==0)
{
for (j=i; j<=n; j+=i)
{
ciur[j]=1;
divi[j][0]++;
divi[j][divi[j][0]]=i;
}
}
sol=n;
for (i=2; i<=n; i++)
{
nr=0;
for (j=1; j<=divi[i][0]; j++)
{
for (k=1; k*divi[i][j]<=n; k++)
if (ciur[k*divi[i][j]]!=i)
{
nr++;
ciur[k*divi[i][j]]=i;
}
}
sol+=n-nr;
}
printf("%lld\n",sol);
return 0;
}