Pagini recente » Cod sursa (job #2626293) | Cod sursa (job #2926340) | Cod sursa (job #1695349) | Cod sursa (job #2588970) | Cod sursa (job #785570)
Cod sursa(job #785570)
#include <iostream>
#include <vector>
#include <cstdio>
using namespace std;
int vi[1000001];
int d[1000001];
int powers[1000001];
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
int n;
cin >> n;
for(long long i=2;i<1000001;i++)
if (powers[i] == d[i])
{
int divisors=0;
if (d[i]==0)
{
d[i]=1;
powers[i]=1;
}
for(int j=i+i;j<1000001;j+=i)
{
divisors++;
powers[j]++;
if (d[i] % 2 == 1)
{
vi[j]+=divisors;
d[j]++;
}
else
{
vi[j]-=divisors;
}
}
int power=0;
if (i<1000)
for(long long j=i*i;j<1000001;j*=i)
{
power++;
powers[j]+=power;
}
}
int total=0;
for(int i=2;i<=n;i++)
{
total += 2*(i - vi[i] - 1);
}
cout << total+1;
}