Pagini recente » Cod sursa (job #2403770) | Cod sursa (job #38281) | Cod sursa (job #983572) | Cod sursa (job #953167) | Cod sursa (job #3030225)
#include <fstream>
#include <bitset>
using namespace std;
int cmmdc(int a, int b)
{
if(a < b)
return cmmdc(b, a);
if(!b)
return a;
return cmmdc(a%b, b);
}
int main()
{
ifstream in("fractii.in");
ofstream out("fractii.out");
int n;
in >> n;
bitset<1000000> viz = 0;
// bool viz[1000000];
int sum = n-1;
// for(int i = 1; i <= n; i++)
// {
// for(int j = i+1; j <= n; j++)
// {
// if(cmmdc(i, j) == 1)
// sum++;
// // out << i << "/" << j << endl;
// }
// }
int i, j;
for(i = 2; i < n; i++)
{
// sum += n-i+1-(n/i);
if(viz[i])
continue;
for(j = i; j <= n; j += i)
viz[j] = true;
sum += (n/i)*(n-i+1 + ( (n/i)-1)*(1-i) )/2;
}
sum <<= 1;
sum += 1;
out << sum;
}