Pagini recente » Cod sursa (job #1294265) | Cod sursa (job #728948) | Cod sursa (job #421687) | Cod sursa (job #1548087) | Cod sursa (job #119440)
Cod sursa(job #119440)
#include<fstream>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
char numere[1000001];
int p;
double tot[1000001];
void ciur(int n)
{
int i,j;
if(n>1)
{++p;
for(j=4; j<=n; j+=2) {
if(numere[j]!='0'){
numere[j]='0';
tot[j]=j*0.5;
}
}
}
for(i=3; i<=n; i+=2)
{
if(numere[i]!='0')
{++p;
for(j=i*2; j<=n; j+=i) {
if(numere[j]!='0'){
numere[j]='0';}
if(tot[j]==0)
tot[j]=j;
tot[j]/=i;
tot[j]*=i-1; }
}
}
}
int main()
{
long n;
f>>n;
long long s=n;
ciur(n);
s+=(long long)p*(n-1);
for(int j=3; j<=n; j++)
{
if(tot[j]!=0)
s+=(long long)(n-(j+j-tot[j]-tot[j]-1));
}
g<<s;
return 0;
}