Skip to content

Instantly share code, notes, and snippets.

@disjukr
Created August 14, 2012 18:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save disjukr/3351517 to your computer and use it in GitHub Desktop.
Save disjukr/3351517 to your computer and use it in GitHub Desktop.
Aheuilize
function divide( a:int ):Array
{
var b:int = int( a/2 );
if( a%2 == 1 ) return [ b, b+1 ];
else return [ b, b ];
}
function factorization( a:int ):Array
{
var primes:Array = [];
var factor:int = 2;
if( a<2 ) return [ a ];
while( a>1 )
{
while( a%factor ) ++factor;
primes.push( factor );
a /= factor;
}
return primes;
}
function compressFactors( a:Array ):Array
{
var isFirst2:Boolean=true;
var isFirst3:Boolean=true;
var cnt2:int=0;
var cnt3:int=0;
var result:Array = [];
for each( var i:int in a )
{
if( i==2 )
{
++cnt2;
if( isFirst2 ) isFirst2=false;
else if( !( cnt2%3 ) ) result.push( 8 );
} else if( i==3 )
{
++cnt3;
if( isFirst3 ) isFirst3=false;
else if( !( cnt3%2 ) ) result.push( 9 );
} else result.push( i );
}
if( cnt2%3==2 ) result.push( 4 );
else if( cnt2%3==1 ) result.push( 2 );
if( cnt3%2==1 ) result.push( 3 );
return result;
}
function isPrime( a:int ):Boolean
{
var sqrt:int = Math.sqrt( a );
if( a<2 ) return false;
for( var i:int=2; a%i&&i<=sqrt; ++i );
return sqrt+1 == i;
}
function number2Aheui( a:int ):String
{
var i:int, cnt:int=-1;
var result:String = "";
var table:Array = [
"바", "받반타", "반", "받", "밤",
"발", "밦", "밝", "밣", "밢"
];
if( a<10 ) return table[ a ];
if( isPrime( a ) )
{
for each( i in divide( a ) )
result += number2Aheui( i );
result += "다";
return result;
} else {
for each( i in compressFactors( factorization( a ) ) )
result += number2Aheui( i ), ++cnt;
for( i=0; i<cnt; ++i )
result += "따";
return result;
}
}
function trace2Aheui( a:String ):String
{
var result:String = "";
for( var i:int=0; i<a.length; ++i )
result += number2Aheui( a.charCodeAt( i ) )+"맣";
return result;
}
trace( number2Aheui( 12345 ) + "망히" ); //발밣밢다밤따발밦다밤받따다받따다받따밣밢다받따밦밝다밤따다밤따다받따따망히
trace( trace2Aheui( "코드 최적화가 필요ㅠㅠ" ) + "히" ); //발밦다발밦다받따밣밢다반따다받따따밝밦밝다받따밣발따다밤따따다밤받따따맣발발밝발밦다받따따밣밝반따발받따다따다밤따따따맣밣밤따맣밦밝다밣밝받따따밦밝다밦밝다따다밤받따따따맣밢밢밦밝다받따밣발따다밤따따발발밝따밢밤따다밤따발밢발반따다받따따다따다따맣발밦다밝반따발받따다밝받따발밦다반따다밤따따따맣밣밣밣밝받따발밦다반따다반따따따따맣밣밤따맣밣발밝따밢밤따다반받따따밝발반받따따발받따밣반따다다따다따발발밝밦밝다받따따따따다밤따맣발밝따밢밤따다발밦다밤따밢발따다밢발반따따다밤따따맣밣발밦밝다받따밣발따다밤따따따맣밣발밦밝다받따밣발따다밤따따따맣히
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment