<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=SmithNumbers%2F%EC%9D%B4%EB%8F%84%ED%98%84</id>
	<title>SmithNumbers/이도현 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=SmithNumbers%2F%EC%9D%B4%EB%8F%84%ED%98%84"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=SmithNumbers/%EC%9D%B4%EB%8F%84%ED%98%84&amp;action=history"/>
	<updated>2026-05-15T14:22:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=SmithNumbers/%EC%9D%B4%EB%8F%84%ED%98%84&amp;diff=39248&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:28, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=SmithNumbers/%EC%9D%B4%EB%8F%84%ED%98%84&amp;diff=39248&amp;oldid=prev"/>
		<updated>2021-02-07T05:28:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==== 소감 ====&lt;br /&gt;
아직 미완성된 코드 입니다. 채점로봇 통과할 때까지는 ~~&lt;br /&gt;
&lt;br /&gt;
==== 코드 ====&lt;br /&gt;
 // no10042 - Smith Numbers&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;string.h&amp;amp;gt;&lt;br /&gt;
 #define ArSize 30&lt;br /&gt;
 int digit_separation(int, int, int*);&lt;br /&gt;
 void prime_factor(int, int*);&lt;br /&gt;
 int prime(int);		/* 소수 : 200, 소수 아님 : 100 */&lt;br /&gt;
 int arr_add(int*);&lt;br /&gt;
 &lt;br /&gt;
 int main(void)&lt;br /&gt;
 {&lt;br /&gt;
 	int arr_separation[ArSize] = { 0 }, arr_prime[ArSize] = { 0 };&lt;br /&gt;
 	int arr_separation_prime[ArSize] = { 0 };&lt;br /&gt;
 	int input_number, input_case, i, j, k;&lt;br /&gt;
 	scanf(&amp;quot;%d&amp;quot;, &amp;amp;amp;input_number);&lt;br /&gt;
 	for (i = 0; i &amp;amp;lt; input_number; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		scanf(&amp;quot;%d&amp;quot;, &amp;amp;amp;input_case);&lt;br /&gt;
 		for (j = input_case + 1; j &amp;amp;lt; 1000000000; j++)&lt;br /&gt;
 		{&lt;br /&gt;
 			/* 소수 체크 */&lt;br /&gt;
 			if (prime(j) == 100)&lt;br /&gt;
 			{&lt;br /&gt;
 				/* 소인수 분해 후 다시 개개의 숫자로 분리 */&lt;br /&gt;
 				prime_factor(j, arr_prime);&lt;br /&gt;
 				for (k = 0; k &amp;amp;lt; ArSize; k++)&lt;br /&gt;
 				{&lt;br /&gt;
 					// 두 자리 이상일 때&lt;br /&gt;
 					if (arr_prime[k] &amp;amp;gt;= 10)&lt;br /&gt;
 						k = digit_separation(k, arr_prime[k], arr_separation_prime);&lt;br /&gt;
 					else&lt;br /&gt;
 						arr_separation_prime[k] = arr_prime[k];&lt;br /&gt;
 				}&lt;br /&gt;
 				/* 입력값 각 자리 배열 */&lt;br /&gt;
 				digit_separation(0, j, arr_separation);&lt;br /&gt;
 &lt;br /&gt;
 				/* 입력값의 소인수 분해값들의 합과 입력값 개개의 합 비교*/&lt;br /&gt;
 				if (arr_add(arr_separation_prime) == arr_add(arr_separation))&lt;br /&gt;
 				{&lt;br /&gt;
 					printf(&amp;quot;%dn&amp;quot;, j);&lt;br /&gt;
 					break;&lt;br /&gt;
 				}&lt;br /&gt;
 				/* 배열 초기화 */&lt;br /&gt;
 				for (i = 0; i &amp;amp;lt; ArSize; i++)&lt;br /&gt;
 				{&lt;br /&gt;
 					arr_separation[i] = 0 ;&lt;br /&gt;
 					arr_prime[i] = 0;&lt;br /&gt;
 					arr_separation_prime[i] = 0;&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /* 입력받은 숫자를 하나씩 분리하여 배열에 저장 */&lt;br /&gt;
 int digit_separation(int start_index, int num, int *array)&lt;br /&gt;
 {&lt;br /&gt;
 	/* 입력 받은 숫자를 문자열로 저장하기 위한 포인터 */&lt;br /&gt;
 	char string[ArSize];&lt;br /&gt;
 	int i, size;&lt;br /&gt;
 	// int형 num를 10진 정수형식으로 char형 string배열에 저장&lt;br /&gt;
 	sprintf(string, &amp;quot;%d&amp;quot;, num);&lt;br /&gt;
 	size = strlen(string);&lt;br /&gt;
 &lt;br /&gt;
 	/* 문자열로 저장된 수를 아스키코드 값을 변환하여 array에 저장한다. */&lt;br /&gt;
 	for (i = 0 + start_index; i &amp;amp;lt; size + start_index; i++)&lt;br /&gt;
 		array[i] = string[i - start_index] - &amp;#039;0&amp;#039;;&lt;br /&gt;
 	return size + start_index;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /* 입력받은 숫자 소인수 분해 */&lt;br /&gt;
 void prime_factor(int num, int *array)&lt;br /&gt;
 {&lt;br /&gt;
 	int i, j, temp;&lt;br /&gt;
 	temp = num;&lt;br /&gt;
 	for (i = 2, j = 0; i &amp;amp;lt; num, j &amp;amp;lt; ArSize;)&lt;br /&gt;
 	{&lt;br /&gt;
 		/* 더이상 소인수분해 할 것이 없으면 */&lt;br /&gt;
 		if (temp == 1)&lt;br /&gt;
 			break;&lt;br /&gt;
 		/* 소인수분해가 가능하면 */&lt;br /&gt;
 		if (temp % i == 0)&lt;br /&gt;
 		{&lt;br /&gt;
 			/* 배열에 저장한다. */&lt;br /&gt;
 			array[j] = i;&lt;br /&gt;
 			temp /= i;&lt;br /&gt;
 			j++;&lt;br /&gt;
 		}&lt;br /&gt;
 		else&lt;br /&gt;
 			i++;&lt;br /&gt;
 			continue;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /* 소수 판별 - 소수 이면 : return 1, 소수가 아니면 : return 2 */&lt;br /&gt;
 int prime(int num)&lt;br /&gt;
 {&lt;br /&gt;
 	int i;&lt;br /&gt;
 	for (i = 2; i &amp;amp;lt; num; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		/* 소수가 아니면 */&lt;br /&gt;
 		if (num % i == 0)&lt;br /&gt;
 			return 100;&lt;br /&gt;
 	}&lt;br /&gt;
 	/* 소수 이면 */&lt;br /&gt;
 	return 200;&lt;br /&gt;
 }&lt;br /&gt;
 /* 배열 덧셈 */&lt;br /&gt;
 int arr_add(int *array)&lt;br /&gt;
 {&lt;br /&gt;
 	int i, total = 0;&lt;br /&gt;
 	for (i = 0; i &amp;amp;lt; ArSize; i++)&lt;br /&gt;
 		total += array[i];&lt;br /&gt;
 	return total;&lt;br /&gt;
 }&lt;br /&gt;
==== 덧글 ====&lt;br /&gt;
uva사이트에 등록할때 e-mail을 적었다면, e-mail로 컴파일 에러가 곳(?)을 로봇이 바로 보내줍니다. 참고하세요. 단, 한메일은 스팸편지함을 확인해 보세요. -보창&lt;br /&gt;
----&lt;br /&gt;
[[SmithNumbers]] [[AOI]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>