Pagini recente » Cod sursa (job #1546983) | Cod sursa (job #1540680) | Cod sursa (job #901524) | Cod sursa (job #1275355) | Cod sursa (job #1572089)
/*Gigel, intr-o zi cand isi facea temele la matematica,
s-a apucat sa scrie pe o foaie de hartie, un sir de fractii
ireductibile de forma P/Q cu 1 ≤ P,Q ≤ N, unde N este un numar
natural ales de el. De exemplu, pentru N = 4 el a obtinut urmatorul sir:
1/1 1/2 1/3 1/4 2/1 2/3 3/1 3/2 3/4 4/1 4/3
Gigel s-a apucat apoi sa numere cate fractii a obtinut pentru N = 4 si a vazut ca sunt 11.*/
#include<iostream>
#include<fstream>
using namespace std;
int fi(int n)
{
int f,x,d,c,y;
f=1;
x=n;
d=2;
while(d<=x/d)
{
c=0;
y=1;
while(x%d==0)
{
c++;
y*=d;
x/=d;
}
if(c>0)
{
f*=(d-1)*(y/d);
}
d++;
}
if(x>1)
{
f=f*(x-1);
}
return f;
}
int main()
{
int i,j,nr=1,n;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
fin>>n;
nr=1;
for(j=2;j<=n;j++)
{
nr+=2*fi(j);
}
fout<<nr;
fin.close();
fout.close();
return 0;
}