Pagini recente » Cod sursa (job #1268963) | Cod sursa (job #1578906) | Cod sursa (job #746169) | Cod sursa (job #232417) | Cod sursa (job #206519)
Cod sursa(job #206519)
/*fractii*/
#include<fstream.h>
#include<string.h>
#include<math.h>
long n,div[50];
char s[1000005],s1[1000005];
unsigned long contor,cont;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int prim(long x)
{
long d;
double rad=sqrt(x);
for(d=2;d<=rad;d++)
if(x%d==0)
return 0;
return 1;
}
void diviz(long x)
{
long d,sv=x;
for(d=2;d<=sv/2&& x!=0;d++)
if(prim(d)==1)
{
if(x%d==0)
{
div[++div[0]]=d;
while(x%d==0)
x/=d;
}
}
if(div[0]==0)
div[++div[0]]=x;
}
int main()
{
long i,j,d;
fin>>n;
contor=n;
for(i=0;i<=n+1;i++)
s1[i]=' ';
for(i=2;i<=n;i++)
{
cont=0;
strcpy(s,s1);
for(j=1;j<=div[0];j++)
div[j]=0;
div[0]=0;
diviz(i);
for(j=1;j<=div[0];j++)
{
d=1;
while(d*div[j]<=n)
{
if(s[d*div[j]]==' ')
{
s[d*div[j]]='0';
cont++;
}
d++;
}
}
contor=contor+n-cont;
}
fout<<contor<<'\n';
fout.close();
return 0;
}