Pagini recente » Cod sursa (job #2107713) | Cod sursa (job #43484) | Cod sursa (job #2736329) | Cod sursa (job #2739956) | Cod sursa (job #2416759)
#include <fstream>
using namespace std;
int n, phi[1000001];
long long fractii = 1;
int main() {
ifstream f("fractii.in");
ofstream g("fractii.out");
f >> n;
//calculam functia phi[n] = nr de numere prime cu n mai mici decat n
for (int i=1;i<=n;i++)
phi[i]=i;//initializam cu i
for (int i=2;i<=n;i++)
if(phi[i]==i)
for(j=i;j<=n;j+=i)
phi[j] = phi[j]*(i-1)/i; //formula este phi[j] = j* produs[(i-1)/i] pt toate numerele prime divizibile cu j
// toate fractiile sunt reprezentate de toate aranjamentele de 2 nr prime intre ele
// multimea tuturor fractiilor cu numere mai mici decat n este suma multimilor fractiilor cu numere mai mici decat 1, 2, ..., n
//(2* phi[i] pt ca fractiile il pot avea pe i si la numitor, si la numarator)
for(int i = 2; i <= n; i++)
fractii += 2 * phi[i];
g << fractii;
f.close();
g.close();
return 0;
}