Pagini recente » Cod sursa (job #11396) | Cod sursa (job #951641) | Cod sursa (job #2455302) | Cod sursa (job #425417) | Cod sursa (job #639097)
Cod sursa(job #639097)
#include<fstream>
#define N 500000
#include<iostream>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
char v[N];
int main()
{
register int i,j;
long *x;
long long n,k,m=0;
long long nr_fractii;
cin>>n;
k=n/6+10;
nr_fractii=(long long)n*(n-1)+1;
x=new long[(long)k];
x[m++]=2;
for(i=1;i<N;i++)
{
if(v[i]==0)
{
x[m]=(i<<1)|1;
if(x[m]>n)
{
break;
}
m++;
for(j=i+((i<<1)|1);j<N;j+=(i<<1)|1)
{
v[j]=1;
}
}
}
cout<<m<<" ";
for(i=0;i<m;i++)
{
nr_fractii=nr_fractii-(n/x[i])*(n/x[i]-1);
for(j=0;j<i;j++)
{
nr_fractii=nr_fractii+(n/(x[i]*x[j]))*(n/(x[i]*x[j])-1);
}
}
cout<<nr_fractii;
return 0;
}