Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 제곱근을 찾지 않고 숫자가 완전제곱수인지 확인

<시간/>

어떤 숫자가 주어졌다고 가정하면 그 숫자가 완전제곱수인지 아닌지를 확인해야 합니다. 이를 확인하기 위해 제곱근 연산을 사용하지 않습니다. 숫자 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