#!/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)ÀÇ ¼Óµµ¸¦ ºñ±³ÇØ º¸¼¼¿ä. # ¿¬½À¹®Á¦: ´õ ºü¸£°Ô ½ÇÇà½ÃÅ°±â À§Çؼ Àç±Í È£ÃâÀ» ¾²Áö ¸»°í ´Ù½Ã ÀÛ¼ºÇØ º¸¼¼¿ä.