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