Pagini recente » Cod sursa (job #1662547) | Cod sursa (job #401296) | Cod sursa (job #546100) | Cod sursa (job #234134) | Cod sursa (job #3168824)
// https://www.infoarena.ro/problema/fractii
// Fractii
// 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.
// Cerinta
// Fiind dat un numar natural N, sa se determine cate fractii sunt in sirul de fractii construit dupa regulile de mai sus.
// Date de intrare
// Fisierul de intrare fractii.in contine pe prima linie numarul natural N.
// Date de iesire
// Fisierul de iesire fractii.out trebuie sa contina un numar natural pe prima linie care reprezinta cate fractii sunt in sir.
// Restrictii si precizari
// 1 ≤ N ≤ 1.000.000
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int n;
int cmmdc(int a, int b)
{
if (!b)
return a;
return cmmdc(b, a % b);
}
int main()
{
fin >> n;
fin.close();
if (n < 1 || n > 1000000)
{
return 0;
}
int count = 0;
for (int i = 1; i <= n; i++)
{
int f = 1;
while (f <= n)
{
if (cmmdc(i, f) == 1)
{
count++;
}
f++;
}
}
fout << count << endl;
fout.close();
return 0;
}