fbpx

Problema #465 – OglPP – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

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.

#include <bits/stdc++.h>
 
using namespace std;
int patrat(int n)
{
   if (sqrt(n)==(int)(sqrt(n))) return n;
   return 0;
}
int oglindit(int n)
{
    int ogl=0;
    while(n!=0)
    {
        ogl=ogl*10+n%10;
        n/=10;
    }
    return ogl;
}
int main()
{
    int a,b,cate=0;
    cin>>a>>b;
    for(int i=sqrt(a); i * i <= b;i++)
    {
        if (i * i >= a)
        {
            int aux=i * i;
            if(patrat(aux))
            {
                int ogl=oglindit(aux);
                if(patrat(ogl)) cate++;}
        }

    }
    cout<<cate;
    return 0;
}
Comentarii

S-ar putea sa iti placa