Pagini recente » Cod sursa (job #254282) | Cod sursa (job #52981) | Cod sursa (job #1434260) | Cod sursa (job #1835291) | Cod sursa (job #1327865)
#include <iostream>
#include <fstream>
using namespace std;
int n,j,i,d,l,fr[1000000],a[50],s,s1,s2,nr22,N;
long long nr,nr1;
ofstream g("fractii.out");
int main()
{
freopen("fractii.in","r",stdin);
scanf("%d",&n);
nr=n;
if(n>10000)
N=10000;
else
N=n;
for(j=2;j<=N;j++)
{
for(l=j;l<=n;l=l+j)
fr[l]=1;
nr1=0;
for(i=2;i<=j/2;i++)
if(fr[i]==0&&j%i==0)
{
for(l=i;l<=n;l=l+i)
fr[l]++;
}
nr1=0;
for(i=1;i<=n;i++)
{if(fr[i]>=1)
nr1++;
fr[i]=0;}
nr1=n-nr1;
nr=nr+nr1;
}
if(n>10000)
{nr22=0;
for(j=10001;j<=n;j++)
{
for(l=j;l<=n;l=l+j)
fr[l]=1;
nr1=0;
for(i=2;i<=j/2;i++)
if(fr[i]==0&&j%i==0)
{
for(l=i;l<=n;l=l+i)
fr[l]++;
}
nr1=0;
for(i=1;i<=n;i++)
{if(fr[i]>=1)
nr1++;
fr[i]=0;}
nr1=n-nr1;
l=0;
while(nr1!=0)
{l++;
a[l]=(a[l]+nr1%10)%10;
a[l+1]=a[l+1]+(a[l]+nr1%10)/10;
j=l+1;
while(a[j]>9)
{a[j]=0;
a[j+1]++;}
nr1=nr1/10;
}
s=l;
}
while(nr!=0)
{
s1++;
a[s1]=a[s1]+(nr%10);
j=s1;
while(a[j]>9)
{
a[j]=a[j]%10;
a[j+1]++;
j++;
}
if(j>s)
s=j;
nr=nr/10;
}
for(i=s;i>=1;i--)
g<<a[i];
}
else
g<<nr;
return 0;
}