@@ -882,7 +882,7 @@ int main()
882
882
883
883
## ๋ฌดํ ๋ฃจํ(infinite loop)
884
884
885
- ๋ฐ๋ณต๋ฌธ์ ์กฐ๊ฑด์์ด ์ฐธ์ด๋ฉด ์ฃผ์ด์ง ๋ฌธ์ฅ์ ๊ณ์ ์ํํฉ๋๋ค. ์กฐ๊ฑด์์ผ๋ก ` 1 ` ์ด๋ ` 2 ` ์ด๋ , ` 20 < 100 ` ์ฒ๋ผ ๊ฒฐ์ ๊ฐ์ด ํญ์ ์ฐธ์ผ๋ก ๊ฐ์ฃผ๋๋ ๊ฐ์ธ ์์ ์ฌ์ฉํ๋ฉด ๋ฐ๋ณต๋ฌธ์ ์์ํ ๋ฐ๋ณต๋๊ฒ ๋ฉ๋๋ค. ์ด๋ฐ ๋ฐ๋ณต๋ฌธ์ ` ๋ฌดํ ๋ฃจํ(infinite loop) ` ๋ผ๊ณ ๋ถ๋ฆ
๋๋ค. ๋ฐฉ๊ธ ๋ค๋ฃฌ ์์ ๋ ๋ฌดํ ๋ฃจํ๋ฅผ ์ฌ์ฉํ ํ๋ก๊ทธ๋จ์
๋๋ค.
885
+ ๋ฐ๋ณต๋ฌธ์ ์กฐ๊ฑด์์ด ์ฐธ์ด๋ฉด ์ฃผ์ด์ง ๋ฌธ์ฅ์ ๊ณ์ ์ํํฉ๋๋ค. ์กฐ๊ฑด์์ผ๋ก ` 1 ` ์ด๋ ` 2 ` , ` 20 < 100 ` ์ฒ๋ผ ๊ฒฐ์ ๊ฐ์ด ํญ์ ์ฐธ์ผ๋ก ๊ฐ์ฃผ๋๋ ๊ฐ์ธ ์์ ์ฌ์ฉํ๋ฉด ๋ฐ๋ณต๋ฌธ์ ์์ํ ๋ฐ๋ณต๋๊ฒ ๋ฉ๋๋ค. ์ด๋ฐ ๋ฐ๋ณต๋ฌธ์ ` ๋ฌดํ ๋ฃจํ(infinite loop) ` ๋ผ๊ณ ๋ถ๋ฆ
๋๋ค. ๋ฐฉ๊ธ ๋ค๋ฃฌ ์์ ๋ ๋ฌดํ ๋ฃจํ๋ฅผ ์ฌ์ฉํ ํ๋ก๊ทธ๋จ์
๋๋ค.
886
886
887
887
ํ๋ก๊ทธ๋จ์ ์ข
๋ฅ์ ๋ฐ๋ผ ๋ฌดํ ๋ฃจํ๋ฅผ ์ฌ์ฉํด์ผํ๋ ๊ฒฝ์ฐ๋ ์์ง๋ง, ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ์ ๋ฌดํ ๋ฃจํ๋ฅผ ์ฌ์ฉํ ์ผ์ด ์์ต๋๋ค. ` ๋ฌดํ ๋ฃจํ์ ๊ฐํ๋ค ` ๋ผ๋ ํํ์ด ์์ ์ ๋๋ก ๋ฌดํ ๋ฃจํ๊ฐ ์คํ ์ค์ธ ์ํฉ์ ๋๊ฒ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์
๋๋ค. ์๋ฅผ ๋ค์ด, 1๋ถํฐ 10๊น์ง์ ์ ์๋ฅผ ๊ฑฐ๊พธ๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด๋ณด๋ ค๊ณ ํฉ๋๋ค.
888
888
@@ -933,7 +933,7 @@ Sum: 65
933
933
934
934
> ์ ` !i ` ์ ์ฃผ๋ชฉํด์ฃผ์ธ์. ๋ถ์ ์ฐ์ฐ์๋ ์ฐธ์ธ ๊ฐ์ ๊ฑฐ์ง์ผ๋ก, ๊ฑฐ์ง์ธ ๊ฐ์ ์ฐธ์ผ๋ก ๋ฐ๊ฟ์ค๋๋ค. ์ฆ, ` 0 ` ์ด ์๋ ์์ ` 0 ` ์ผ๋ก, ` 0 ` ์ธ ์์ ` 1 ` ๋ก ๋ฐ๊ฟ์ฃผ๋ ์ฐ์ฐ์์
๋๋ค. ๊ทธ๋์ ` i ` ๊ฐ ` 0 ` ์ด ์๋๋ฉด ์กฐ๊ฑด์์ ๊ฒฐ๊ณผ๊ฐ์ด ` 0 ` ์ด ๋์ด if๋ฌธ ์์ชฝ์ด ์คํ๋์ง ์๊ณ , ` i ` ๊ฐ ` 0 ` ์ด๋ฉด ์กฐ๊ฑด์์ ๊ฒฐ๊ณผ๊ฐ์ด ` 1 ` ์ด ๋์ด if๋ฌธ ์์ชฝ์ด ์คํ๋ฉ๋๋ค. ์ด๋ ๊ฒ ์ฌ์ฉ์๊ฐ ` 0 ` ์ ์
๋ ฅํ๋ฉด ๋ฐ๋ณต๋ฌธ์ ์ข
๋ฃํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
935
935
936
- ## ๋ฐ๋ณต๋ฌธ ํ์ฉํ๊ธฐ
936
+ ## ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ ํ์ฉํ๊ธฐ
937
937
938
938
๋ฐ๋ณต๋ฌธ๋ค๋ ๋ฌธ์ฅ์ด๊ธฐ ๋๋ฌธ์, ๋ฐ๋ณต๋ฌธ ์์ ๋ฐ๋ณต๋ฌธ์ ์ง์ด๋ฃ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ณต๋ฌธ๋ผ๋ฆฌ ๊ฒน์ณ์ฐ๋ ๋ํ์ ์ธ ์์๊ฐ ๋ฐ๋ก ๊ตฌ๊ตฌ๋จ ์ถ๋ ฅ์ธ๋ฐ์,
939
939
@@ -984,11 +984,17 @@ int main()
984
984
else
985
985
for (int num = 2; num <= threshold; ++num)
986
986
{
987
- int is_prime = 1;
987
+ int is_prime = 1, div = 2 ;
988
988
989
- for (int i = 2; i * i <= num; ++i )
989
+ while (div * div <= num)
990
990
{
991
- if (num % i == 0) is_prime = 0;
991
+ if (num % div == 0)
992
+ {
993
+ is_prime = 0;
994
+ break;
995
+ }
996
+
997
+ ++div;
992
998
}
993
999
994
1000
if (is_prime)
@@ -1005,4 +1011,8 @@ int main()
1005
1011
given number is too big
1006
1012
```
1007
1013
1014
+ ` 2 ` ์ด์ ` threshold ` ์ดํ์ ๋ชจ๋ ์ ์ ` num ` ์ ๋ํด, ` 2 ` ์ด์ ๋ฃจํธ ` num ` ์ดํ์ ๋ชจ๋ ์ ์ ` div ` ์ ๋ํด, ์ ` num % div == 0 ` ์ด ` 1 ` ์ธ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฉด ` num ` ์ ์์๊ฐ ์๋๊ณ , ` 1 ` ์ธ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฉด ` num ` ์ ์์๋ผ๊ณ ํ๋จํ๋ ํ๋ก๊ทธ๋จ์
๋๋ค.
1015
+
1016
+ ์ด๋ ๊ฒ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ์ ์ ์ ํ ํ์ฉํ๋ฉด ๋ค์ํ ๋ฐ๋ณต์ ์ธ ๊ณ์ฐ์ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์๊ฒ ๋ฉ๋๋ค.
1017
+
1008
1018
[ ๋ค์: ํจ์] ( ../8-functions )
0 commit comments