Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Kiểm tra số chính phương không dùng căn bậc hai trong C++


Kiểm tra một số có phải chính phương hay không mà không dùng phép căn bậc hai. Ví dụ 1024 là chính phương, 1000 thì không.

Thuật toán: duyệt i từ 1 đến khi i² > n. Nếu n chia hết cho i và n/i == i thì là chính phương.

Thuật toán

isPerfectSquare(n)
begin
    for i := 1, i² ≤ n, tăng i 1:
        nếu n chia hết cho i và n / i = i thì
            trả về true
    done
    trả về 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";
    }
}

Kết quả

1024 is perfect square number