Pagini recente » Rating Bold Andrei (Boldins) | Cod sursa (job #2074656) | Cod sursa (job #1260941) | Cod sursa (job #506032) | Cod sursa (job #203207)
Cod sursa(job #203207)
#include <stdio.h>
#include <math.h>
#define maxl 100010
int i,j,n,m,k,cop,v,sol=0,nr;
int ciur[maxl];
int divi[1010];
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%d",&n);
for (i=1; i<=n; i++)
{
cop=i;m=0;
if (cop%2==0)
{
divi[++m]=2;
while (!(cop%2)) cop/=2;
}
while (cop>1)
{
k=(int)sqrt(cop);v=cop;
for (j=3; j<=k; j++)
if (cop%j==0)
{
divi[++m]=j;
while (!(cop%j)) cop/=j;
}
if (cop==v && cop!=2)
{
divi[++m]=cop;
cop=1;
}
}
nr=0;
for (j=1; j<=m; j++)
{
for (k=1; k*divi[j]<=n; k++)
if (ciur[k*divi[j]]!=i)
{
nr++;
ciur[k*divi[j]]=i;
}
}
sol+=n-nr;
}
printf("%d\n",sol);
return 0;
}