382
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