# PBinfo #4509 – Eratostene11  – Rezolvare C++

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

## Enunț

Cerința
Se dă un șir A format din N elemente, numere naturale nenule distincte. Să se determine numărul perechilor (i,j), cu i<j, pentru care numărul \( A_{i}+A_{j}\) este divizibil cu \( A_{i}-A_{j}\).

Date de intrare
Programul citește de la tastatură numărul N, iar apoi N numere naturale, separate prin spații.

Date de ieșire
Programul va afișa pe ecran numărul cerut.

Restricții și precizări

1 ≤ N ≤ 200.000
cele N numere citite vor fi naturale nenule distincte, cel mult egale cu 200.000

Exemplu:
Intrare

5
1 2 3 4 5
Ieșire

7
Explicație
Cele 7 perechi de indici care verifică condiția sunt: (1,2), (1,3), (2,3), (2,4), (3,4), (3,5), (4,5).

## Cod sursă C++

```cpp
// solutie 100 pct Mihai Georgescu
#include <iostream>
#include <bitset>
using namespace std;
bitset<500000> c;
int n,x,nr;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        cin>>x;
        c[x]=1;
    }
    for(int i=1; i<=200000; i++)
    {
        for(int j=2*i; j<=400000; j=j+i)
        {
            if(j%2==0)
            {
                if(c[j/2]==1)
                {
                    if(c[j/2-i]==1)
                        nr++;
                }
            }
        }
    }
    cout<<nr;
    return 0;
}
```

## Resurse

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