Pagini recente » Cod sursa (job #3230677) | Cod sursa (job #2526673) | Cod sursa (job #2147959) | Cod sursa (job #1476217) | Cod sursa (job #3168875)
// 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)
{
while (b != 0)
{
int temp = b;
b = a % b;
a = temp;
}
return a;
}
int fractii_ireductibile(int x)
{
int count = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if (cmmdc(i, j) == 1)
{
count++;
}
}
}
return count;
}
int main()
{
fin >> n;
fin.close();
if (n < 1 || n > 1000000)
{
return 0;
}
fout << fractii_ireductibile(n) << endl;
fout.close();
return 0;
}