<?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%8B%A0%EC%9E%AC%EB%8F%99</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%8B%A0%EC%9E%AC%EB%8F%99"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=SmithNumbers/%EC%8B%A0%EC%9E%AC%EB%8F%99&amp;action=history"/>
	<updated>2026-05-15T06:58:24Z</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%8B%A0%EC%9E%AC%EB%8F%99&amp;diff=39247&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%8B%A0%EC%9E%AC%EB%8F%99&amp;diff=39247&amp;oldid=prev"/>
		<updated>2021-02-07T05:28:03Z</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;=== SmithNumbers/신재동 ===&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;vector&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 const int MAX_TEST = 100;&lt;br /&gt;
 &lt;br /&gt;
 const int MAX_PRIME_NUMBER = 100000;&lt;br /&gt;
 int MAIN_PRIME_NUMBER[MAX_PRIME_NUMBER] = {0,};&lt;br /&gt;
 &lt;br /&gt;
 int testCase;&lt;br /&gt;
 &lt;br /&gt;
 int number;&lt;br /&gt;
 int smithNumbers[MAX_TEST] = {0,};&lt;br /&gt;
 &lt;br /&gt;
 void input();&lt;br /&gt;
 void process(int i);&lt;br /&gt;
 void output();&lt;br /&gt;
 int sumPositionOfNumber(int testNumber);&lt;br /&gt;
 int sumFactorizationOfNumber(int testNumber);&lt;br /&gt;
 bool isSmithNumber(int n);&lt;br /&gt;
 int factorization(int testNumber);&lt;br /&gt;
 void makePrimeNumbers();&lt;br /&gt;
 &lt;br /&gt;
 void makePrimeNumbers()&lt;br /&gt;
 { &lt;br /&gt;
 	int primeCount = 0;&lt;br /&gt;
     MAIN_PRIME_NUMBER[primeCount++] = 2;&lt;br /&gt;
 &lt;br /&gt;
     for (int i = 3; primeCount &amp;amp;lt; MAX_PRIME_NUMBER; i += 2)&lt;br /&gt;
     {&lt;br /&gt;
 		for (int j = 0; j &amp;amp;lt; primeCount; j++)&lt;br /&gt;
 		{&lt;br /&gt;
 			if (i % MAIN_PRIME_NUMBER[j] == 0)&lt;br /&gt;
 				break;&lt;br /&gt;
 			else if (i / MAIN_PRIME_NUMBER[j] &amp;amp;lt;= MAIN_PRIME_NUMBER[j])&lt;br /&gt;
 			{&lt;br /&gt;
 				MAIN_PRIME_NUMBER[primeCount++] = i;&lt;br /&gt;
 				break;&lt;br /&gt;
 			} &lt;br /&gt;
 		} &lt;br /&gt;
     } &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void input()&lt;br /&gt;
 {&lt;br /&gt;
 	//number = 4937774;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; number;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int sumPositionOfNumber(int testNumber)&lt;br /&gt;
 {&lt;br /&gt;
 	int sum = 0;&lt;br /&gt;
 &lt;br /&gt;
 	for(int i = 9; i &amp;amp;gt;= 0; i--)&lt;br /&gt;
 	{&lt;br /&gt;
 		int devideNum = 1;&lt;br /&gt;
 		for(int j = 0; j &amp;amp;lt; i; j++)&lt;br /&gt;
 			devideNum *= 10;&lt;br /&gt;
 &lt;br /&gt;
 		sum += testNumber / devideNum;&lt;br /&gt;
 		testNumber %= devideNum;&lt;br /&gt;
 	}&lt;br /&gt;
 	return sum;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int factorization(int testNumber)&lt;br /&gt;
 {&lt;br /&gt;
 	int prime = 1;&lt;br /&gt;
 	for(int i = 0; i &amp;amp;lt; MAX_PRIME_NUMBER; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		if(testNumber % MAIN_PRIME_NUMBER[i] == 0)&lt;br /&gt;
 		{&lt;br /&gt;
 			prime = MAIN_PRIME_NUMBER[i];&lt;br /&gt;
 			break;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	return prime;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int sumFactorizationOfNumber(int testNumber)&lt;br /&gt;
 {&lt;br /&gt;
 	int sum = 0;&lt;br /&gt;
 	int prime;&lt;br /&gt;
 &lt;br /&gt;
 	while(true)&lt;br /&gt;
 	{&lt;br /&gt;
 		prime = factorization(testNumber);&lt;br /&gt;
 		if(prime == 1)&lt;br /&gt;
 			break;&lt;br /&gt;
 		testNumber /= prime;&lt;br /&gt;
 		sum += sumPositionOfNumber(prime);&lt;br /&gt;
 	}&lt;br /&gt;
 	return sum;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 bool isSmithNumber(int testNumber)&lt;br /&gt;
 {&lt;br /&gt;
 	return sumPositionOfNumber(testNumber) == sumFactorizationOfNumber(testNumber);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void process(int i)&lt;br /&gt;
 {&lt;br /&gt;
 	int testNumber = number;&lt;br /&gt;
 	while(true)&lt;br /&gt;
 	{&lt;br /&gt;
 		if(isSmithNumber(testNumber))&lt;br /&gt;
 			break;&lt;br /&gt;
 		testNumber++;&lt;br /&gt;
 	}&lt;br /&gt;
 	smithNumbers[i] = testNumber;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void output()&lt;br /&gt;
 {&lt;br /&gt;
 	for(int i = 0; i &amp;amp;lt; testCase; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; smithNumbers[i] &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	makePrimeNumbers();&lt;br /&gt;
 &lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; testCase;&lt;br /&gt;
 &lt;br /&gt;
 	for(int i = 0; i &amp;amp;lt; testCase; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		input();&lt;br /&gt;
 		process(i);&lt;br /&gt;
 	}&lt;br /&gt;
 	output();&lt;br /&gt;
 &lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
----&lt;br /&gt;
문제 설명에 나온대로 그냥 무식하게 만듬. --재동&lt;br /&gt;
&lt;br /&gt;
[[SmithNumbers]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>