fbpx

Problema #1908 – Fractii_Ired – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Dându-se şirul de fracţii 1/N, 2/N, 3/N, ...,N/N, să se afle câte fracţii sunt ireductibile.

Date de intrare

Programul citește de la tastatură numărul N.

Date de ieșire

Programul va afișa pe ecran numărul de fracţii ireductibile.

Restricții și precizări

  • 1 ≤ n ≤ 2.000.000.022

Exemplu

Intrare

4

Ieșire

2

Explicație

Fracţiile sunt 1/4, 3/4.

#include <bits/stdc++.h>
using namespace std;

int main()
{
    long long int n , d = 2;
    cin >> n;
    long long int nr = n;
    while(n > 1)
    {
        if(n % d == 0)
        {
            nr /= d;
            nr *= d - 1;
            while(n % d == 0)
                n /= d;
        }
        if(d == 2) 
            d = 3;
        else 
            d += 2;
        if(d * d > n) 
            d = n;
    }
    cout << nr;
    return 0;
}
Comentarii

S-ar putea sa iti placa