Computer >> Máy Tính >  >> Lập trình >> C ++

Kiểm tra xem một số có phải là số bình phương hoàn hảo mà không cần tìm căn bậc hai trong C ++ hay không

Giả sử một số được đưa ra, chúng ta phải kiểm tra xem số đó có phải là một hình vuông hoàn hảo hay không. Chúng tôi sẽ không sử dụng phép toán căn bậc hai để kiểm tra nó. Giả sử có một số 1024, đây là một hình vuông hoàn hảo, nhưng 1000 không phải là một hình vuông hoàn hảo. Logic rất đơn giản, chúng ta phải làm theo thuật toán này để có được kết quả.

Thuật toán

isPerfectSquare (n) -

đầu vào - Số n

đầu ra - true, nếu số là một hình vuông hoàn hảo, ngược lại, false

begin
   for i := 1, i2 ≤ n, increase i by 1:
      if n is divisible by i, and n / i = i, then
         return true
   done
   return false
end

Ví dụ

#include <iostream>
using namespace std;
bool isPerfectSquare(int number) {
   for (int i = 1; i * i <= number; i++) {
      if ((number % i == 0) && (number / i == i)) {
         return true;
      }
   }
   return false;
}
int main() {
   int n = 1024;
   if(isPerfectSquare(n)){
      cout << n << " is perfect square number";
   } else {
      cout << n << " is not a perfect square number";
   }
}

Đầu ra

1024 is perfect square number