Pagini recente » Cod sursa (job #1521404) | Cod sursa (job #1407803) | Cod sursa (job #3164243) | Cod sursa (job #234904) | Cod sursa (job #3233961)
#include <fstream>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int n;
int numitor[1000005];
int numarator[1000005];
long long nrnumitor()
{
numitor[1]=1;
for(int i=2;i<=n;++i){
numitor[i]=i-1;
}
for(int i=2;i<=n;++i){
for(int j=i*2;j<=n;j+=i){
numitor[j]-=numitor[i];
}
}
long long s=0;
for(int i=1;i<=n;++i){
s+=numitor[i];
}
return s;
}
long long nrnumarator()
{
numarator[1]=1;
for(int i=2;i<=n;++i){
numarator[i]=i-1;
}
for(int i=2;i<=n;++i){
for(int j=i*2;j<=n;j+=i){
numarator[j]-=numarator[i];
}
}
long long s=0;
for(int i=1;i<=n;++i){
s+=numarator[i];
}
return s;
}
int main()
{
fin >> n;
fout << nrnumitor()+nrnumarator()-1;
return 0;
}