Unum.c

~cpp 
#include <stdio.h>
int unum(int num);	// 심술쟁이수인지 검사한다
void main()
{
	int i,j;			// 카운터
	int uarr[2000] = {0,};	// 심술쟁이 수들의 배열
	int ind;			// 알고 싶은 인덱스

	uarr[0] = 1;

	scanf("%d", &ind);		// 알고 싶은 심술쟁이 수를 얻는다

	for ( i=1,j=1;j<=(ind-1);i++ ) {
		if ( !unum(i) ) {
			uarr[j++] = i;
		}
	}

	printf("%d 번째 수는 %d이다\n",ind,uarr[ind-1]);

}

int unum(int num)
{
	if ( num==3 || num==2 || num==5 )
		return 0;
	if ( num%2==0 )
		return unum(num/2);
	else if ( num%3==0 )
		return unum(num/3);
	else if ( num%5==0 )
		return unum(num/5);
	else
		return 1;
}
딱 3분 걸린다. 경고음 붙여서 라면 먹을때 이용하면 좋겠다.

Retrieved from http://wiki.zeropage.org/wiki.php/UglyNumbers/구자겸
last modified 2021-02-07 05:28:19