Pagini recente » simulare-oji-hlo-liceu-intermediari | Cod sursa (job #216474) | Cod sursa (job #1425961) | Cod sursa (job #1927915) | Cod sursa (job #1425659)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
int n,i,j,prim[1000001],neprim[1000001],m,k,t,A[1000001],sol,p,nr;
bool Q[101];
int main ()
{
f>>n;
sol=n;
A[2]=1;
for(i=4;i<=n;i+=2)
Q[i]=1,A[2]++;
for(i=3;i<=n;i+=2)
{
A[i]=1;
for(j=i+i;j<=n;j+=i)
Q[j]=1,A[i]++;
}
for(i=2;i<=n;i++)
if(Q[i]==0)
prim[++m]=i,sol+=n-A[i];
else
neprim[++k]=i;
for(i=1;i<=k;i++)
{
p=1,nr=0,t=0;
for(j=1;j<=m;j++)
if(neprim[i]%prim[j]==0)
{
p*=prim[j],t++;
nr+=A[prim[j]];
}
for(j=p;j<=n;j+=p)
nr=nr-(t-1);
sol+=n-nr;
}
g<<sol;
return 0;
}