👤

C++

Se dau 2 numere naturale a b, a < b. Determinați câte numere din intervalul [a,b] sunt pătrate perfecte și au proprietatea că oglinditul lor este pătrat perfect.

Date de intrare
Programul citește de la tastatură numerele a b.

Date de ieşire
Programul afișează pe ecran numărul C, reprezentând valoarea căutată.

Restricţii şi precizări
1 ≤ a < b ≤ 1.000.000.000



Exemplu
Intrare

100 500
Ieșire

7
Explicație
Numerele sunt 100 121 144 169 400 441 484.


Răspuns :

Am facut o sursa C++, in care mergi de la 1 la radical(1000000000) adica 31622 + 1 si asfel poti obtine 100puncte. Succes!
#include <bits/stdc++.h>
using namespace std;
int ninv, i, a, b, nr, n, k, r;
int main()
{
    cin >> a >> b;
    for(i = 1; i <= 31623; i ++)
    {
        n = i * i;
        k = n;
        ninv = 0;
        while(n)
        {
            ninv = ninv * 10 + n % 10;
            n = n / 10;
        }
        r = sqrt(ninv);
        if(r * r == ninv && k >= a && k <= b) nr++;
    }
    cout << nr;
    return 0;
}