# PBinfo #3307 – fractie6 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerința
Se dă un numar n și n perechi de numere naturale a și b.Să se determine dacă a/b este fracție finită sau periodică, iar dacă este fracție periodică să se determine dacă este fracție periodică simplă sau mixtă.

Date de intrare.
Se citește de la tastatură un număr n și apoi n perechi de numere a b.

Date de ieșire
Programul afișează pentru fiecare pereche citită, pe câte un rând, mesajul fractie finita, fractie periodica simpla sau fractie periodica mixta în funcție de caz.

Restricții și precizări

1 ≤ n ≤ 100
1 ≤ a , b ≤ 1.000.000.000,  numere naturale

Exemplu:
Intrare

5
2 5
7 90
90 270
50 81000
9 3
Ieșire

fractie finita
fractie periodica mixta
fractie periodica simpla
fractie periodica mixta
fractie finita

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main()
{
    int n,a,b;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a>>b;
        int ca=a,cb=b,rest;
        while(cb!=0)
        {
            rest=ca%cb;
            ca=cb;
            cb=rest;
        }
        a=a/ca;
        b=b/ca;
        int cnt2=0,cnt5=0;
        while(b%2==0)
        {
            cnt2++;
            b/=2;
        }
        while(b%5==0)
        {
            cnt5++;
            b/=5;
        }
        if(b==1)
            cout<<"fractie finita"<<'\n';
        else
        {
            if(cnt2+cnt5==0)
                cout<<"fractie periodica simpla"<<'\n';
            else
                cout<<"fractie periodica mixta"<<'\n';
        }
    }
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/3307)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/3307/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-3307/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
