어떤 숫자가 주어졌다고 가정하면 그 숫자가 완전제곱수인지 아닌지를 확인해야 합니다. 이를 확인하기 위해 제곱근 연산을 사용하지 않습니다. 숫자 1024가 있다고 가정하면 이것은 완전제곱수이지만 1000은 완전제곱수가 아닙니다. 논리는 간단합니다. 결과를 얻으려면 이 알고리즘을 따라야 합니다.
알고리즘
isPerfectSquare(n) -
입력 - 숫자 n
출력 - 숫자가 완전제곱수이면 true, 그렇지 않으면 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
예시
#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"; } }
출력
1024 is perfect square number