Pagini recente » Cod sursa (job #684808) | Cod sursa (job #1945664) | Cod sursa (job #2254948) | Cod sursa (job #1854472) | Cod sursa (job #1651528)
#include<iostream>
#include<fstream>
using namespace std;
ifstream in("fractii.in");
ofstream out("fractii.out");
const int N = 1000000;
char neprim[1000001];
int v[78499];
int n;
int main()
{
long long a,b,sol;
int i,j,m;
in>>n;
m = 0;
neprim[1] = 1;
for(i=2; i*i<=N; ++i)
for(j=i*i; j<=N; j+=i)
neprim[j] = 1;
for(i=1; i<=N; ++i)
if(neprim[i] == 0)
v[++m] = i;
sol = 0;
for(i=2; i<=n; ++i)
{
a = i;
b = 1;
j=1;
while(v[j] <= i && j<=m)
{
if(i % v[j] == 0)
{
a *= v[j]-1;
b *= v[j];
}
++j;
}
///out<<"a="<<a<<" b="<<b<<"\n";
///out<<"i="<<i<<" adun="<<a/b*2<<"\n";
sol += (a/b) * 2;
}
++sol;
out<<sol;
return 0;
}