티스토리 뷰

n의 약수들 중 k번째의 수를 출력한다.

만일 n의 약수의 개수가 k개보다 적어서 k번째 약수가 존재하지 않을 경우에는 0을 출력하시오



입력 예)

n=6, k=3으로 입력했을 경우

입력 ) 6 3

출력 ) 3


n=25, k=4로 입력했을 경우

입력 ) 25 4

출력 ) 0




C언어로 한번 짜보았습니다.



#include<stdio.h>

void main()
{
	int i=0;
	int num1=0, num2=0 ;
	int counter=0;
	int searchNum=0;

	scanf("%d %d",&num1, &num2);

	// 총 약수를 구함
	for(i=1 ; i <= num1 ; i++)
	{
		// 약수를 찾을 경우
		if((num1 % i)==0)
		{
			// 카운트 1증가
			counter++;

			// k와 비교해서 같으면 현재 나눈 값을 searchNum에 저장
			if ( counter == num2 )
			{
				searchNum=i;
				break;
			}
		}
	}

	// 찾았을 경우 해당 값을, 찾지 못했을 경우 0을 출력
	printf("%d\n", searchNum);
}

위 소스의 출력결과는 아래와 같습니다.




댓글