Informatică, întrebare adresată de ahhshajjaja, 8 ani în urmă

Se citeşte n şi un şir de n numere naturale.

Cerinţa
Să se afișeze elementele din șir care au proprietatea că primele două cifre din scrierea zecimală formează un pătrat perfect.
problema 132 de pe pbinfo
rezolvare fara sqrt​


Sergetec: Of of, fara sqrt este mai greu, dar nu imposibil
Sergetec: Necesita niste gandire matematica si logica
Sergetec: Eu am facut problema acum ceva timp, ma gandesc si la o rezolvare fara sqrt si o pun cand e gata

Răspunsuri la întrebare

Răspuns de Sergetec
1

Ai mai jos rezolvarea in limbaj C++

#include <fstream>

using namespace std;

ifstream cin("elempp.in");

ofstream cout("elempp.out");

//Rezolvare fara sqrt

bool patrPerf(int n)

{

 for (int i = 1; i * i <= n; i++)

 {

   if (n % i == 0 && n / i == i)

   {

     return true;

   }

 }

 return false;

}

int douaCif(int n)

{

 while (n > 99)

 {

   n = n / 10;

 }

 return n;

}

int main()

{

 int n;

 cin >> n;

 for (int i = 1; i <= n; i++)

 {

   int x;

   cin >> x;

   if (patrPerf(douaCif(x)) == true)

   {

     cout << x << " ";

   }

 }

 return 0;

}

Eu am luat 100 de puncte cu rezolvarea asta pe pbinfo si este complet fara sqrt.

Alte întrebări interesante