제급근을 구하기 위해 함수를 만들자. mySqrt()함수로 명명.

#include<stdio.h>

int	mySqrt(int num)
{ 
  int root=1;
  if(num<=1 ) return 0; 

  while (root < num/root && root * root !=num  )
    root++;
  if(root * root == num) return root ;
  return 0;
}
int main(void){
  int num,result ;
  scanf("%d",&num);
  result = mySqrt(num);
  printf("\nmySqrt(%d) : %d",num,result);
}

mySqrt() 함수를 만들어 봤다.  위에서 중요한 구문은 while(root<num/root && root *root !=num) 입니다. root는 하나씩 값이 올라가면서 제곱근인지 확인해야 합니다. 확인하는 방법이 독특합니다. root로 num을 나누었을 때 그 값은 root 보다 커야 합니다. 크다는 것은 한 번 더 나눌 수 있다는 의미입니다. 그렇다면 아직 root를 제곱해서 num을 만들 수 없는 수라는 의미입니다. 그래서 root를 한 번 더 +1 하여야 하는 근거가 됩니다.

그리고 root * root 를 해서 num보다 작으면 한 번 더 root를 ++ 합니다.  제곱근을 어떻게 구할 수 있을까 고민했지만 드디어 알아냈습니다. 많은 분들이 이제 점점 수학을 컴퓨터 언어로 변환하는 것을 잘할 수 있으면 좋겠어요.

 

구할 수 없으면 0을 출력
25의 제곱근 5

 

Posted by 뭔가느낌이
,