301
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