반응형
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;
}
<이상>
반응형
'C' 카테고리의 다른 글
C 언어, 세 정수의 최대공약수 (0) | 2018.08.06 |
---|---|
C 언어, 두 정수 또는 세 정수 중에서 가장 큰 수나 작은 수 찾기 (0) | 2018.08.06 |
C 언어, 별(*) 문자로 원 그리기 (0) | 2018.08.05 |
C 언어, 현재 날짜 시간 출력 (0) | 2018.07.27 |
Find TEXTFILE (파일 목록 출력하기) (0) | 2018.07.27 |