Sophie

Sophie

distrib > Mandriva > current > x86_64 > by-pkgid > b611ea73723a8287cce23d3124a6eeea > files > 283

howto-sgml-ko-2006-5mdv2010.0.noarch.rpm

#!/bin/bash
# primes.sh: ¹è¿­À» ¾²Áö ¾Ê°í ¼Ò¼ö(prime number)¸¦ »ý¼º.

#  ÀÌ ½ºÅ©¸³Æ®´Â °íÀüÀûÀÎ "¿¡¶óÅ佺Å׳׽ºÀÇ Ã¼" ¾Ë°í¸®ÁòÀ» ¾²Áö *¾Ê°í*
#+ "%" ³ª¸ÓÁö ¿¬»êÀÚ¸¦ ½á¼­ ¼Ò¼ö¸¦ ±¸ÇÏ´Â Á» ´õ Á÷°üÀûÀÎ ¹æ¹ýÀ» »ç¿ëÇÕ´Ï´Ù.
#
# Stephane Chazelas °¡ º¸³»ÁØ ½ºÅ©¸³Æ®.


LIMIT=1000                    # 2 - 1000 ÀÇ ¼Ò¼ö

Primes()
{
 (( n = $1 + 1 ))             # ´ÙÀ½ Á¤¼ö.
 shift                        # ¸ñ·ÏÀÇ ´ÙÀ½ ¸Å°³º¯¼ö.
#  echo "_n=$n i=$i_"
 
 if (( n == LIMIT ))
 then echo $*
 return
 fi

 for i; do                    # "i"´Â $n ÀÇ ÀÌÀü°ªÀÎ "@"·Î ¼¼Æ®µÊ.
#   echo "-n=$n i=$i-"
   (( i * i > n )) && break   # ÃÖÀûÈ­.
   (( n % i )) && continue    # ³ª¸ÓÁö ¿¬»êÀÚ·Î ¼Ò¼ö°¡ ¾Æ´Ñ ¼ö¸¦ °É·¯³¿.
   Primes $n $@               # ·çÇÁ¾È¿¡¼­ Àç±Í È£Ãâ.
   return
   done

   Primes $n $@ $n            # ·çÇÁ¹Û¿¡¼­ Àç±Í È£Ãâ.
                              # À§Ä¡ ¸Å°³º¯¼ö·Î ´©Àû(accumulate) ¼º°ø.
			      			  # "$@" ´Â ÇöÀç ãÀº ¼Ò¼öÀÇ ¸ñ·ÏÀÔ´Ï´Ù.
}

Primes 1

exit 0

# ¹«½¼ ÀÏÀÌ ÀϾ´ÂÁö ¾Ë°í ½ÍÀ¸¸é 16ÁÙ°ú 24ÁÙÀÇ ÁÖ¼®À» Ç®¾îº¸¼¼¿ä.

# ÀÌ ¾Ë°í¸®Áò°ú ¿¡¶óÅ佺Å׳׽ºÀÇ Ã¼ ¾Ë°í¸®Áò(ex68.sh)ÀÇ ¼Óµµ¸¦ ºñ±³ÇØ º¸¼¼¿ä.

# ¿¬½À¹®Á¦: ´õ ºü¸£°Ô ½ÇÇà½ÃÅ°±â À§Çؼ­ Àç±Í È£ÃâÀ» ¾²Áö ¸»°í ´Ù½Ã ÀÛ¼ºÇØ º¸¼¼¿ä.