Pagini recente » Cod sursa (job #2310557) | Cod sursa (job #2162500) | Cod sursa (job #2604527) | Cod sursa (job #2584762) | Cod sursa (job #1037577)
#include<fstream>
#include<iostream>
using namespace std;
int prime[80001],nrprime;
bool nr[1000001];
void ClE(int n)
{
int L=n/2,i,j;
for(i=1;i<=L;++i)
for(j=2*(i*i+i);j<=L;j+=(2*i+1))
nr[j]=true;
prime[nrprime++]=2;
for(i=1;i<=L;++i)
if(!nr[i])prime[nrprime++]=2*i+1;
}
int F(int x)
{
int i,nr=0;
for(i=0;i<nrprime && prime[i]<=x;++i)
if(x%prime[i]==0) nr+=(x/prime[i]-1);
return 2*x-1-2*nr-1;
}
int main()
{
ifstream f("fractii.in");
ofstream g("fractii.out");
int n,r=1,i;
f>>n;
ClE(n);
for(i=2;i<=n;++i)
r+=F(i);
g<<r<<"\n";
f.close();
g.close();
return 0;
}