반응형

C 언어, n 번째 약수 찾기 

 

글.  오상문  sualchi@daum.net 

 

1부터 지정한 수까지 나머지 연산으로 약수를 찾아가는 예제입니다. 

지정한 n 번째를 찾기 위해 약수를 찾을 때마다 n을 1씩 줄여가고, 

n이 0이될 때 나머지 연산에 사용된 값이 찾는 약수입니다.

 

// n 번째 약수를 돌려주는 예제 

#include <stdio.h>

int nth_divisor(int num, int nth) {
  int i;
 
  for(i=1; i<num; i++) {  // 1붙터 약수인지 검사
    if(num%i==0) {    // 약수면 nth를 감소
      nth--; 
      if(nth==0)     // nth가 0이면 찾는 위치임
        return i;     // ㅑ값을 약수로 돌려줌
    }  
  }
  return -1;       // 찾지 못하면 -1을 돌려줌
}

 

int main(int argc, char *argv[])
{
  int number = 100;  // 숫자 
  int nth = 5;    // 몇 번째 약수인지 지정
 
  ret = nth_divisor(number, nth);
 
  if(ret==-1)
    printf("찾는 약수가 없습니다.\n");
  else
    printf("%d의%d 번째 약수: %d \n", number, nth, ret);

 
  return 0;
}

 

<이상> 

 

반응형

+ Recent posts