웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
정규식으로 소수 찾기
2014.12.31 23:16
특정 숫자가 소수인지 검사할 때에는 보통 for 루프를 돌려가며 합니다. 이를 PCRE의 강력함을 이용하여 다음과 같이 코드 한 줄로 대체할 수 있습니다.
function isPrimeNumber($number) { return !preg_match('/^1?$|^(11+?)\1+$/', str_repeat(1, $number)); } for($i = 100; $i > 0; $i--) { if(isPrimeNumber($i)) echo $i."은(는) 소수입니다.\n"; else echo $i."은(는) 소수가 아닙니다.\n"; }
결과:
100은(는) 소수가 아닙니다.
99은(는) 소수가 아닙니다.
98은(는) 소수가 아닙니다.
97은(는) 소수입니다.
96은(는) 소수가 아닙니다.
95은(는) 소수가 아닙니다.
94은(는) 소수가 아닙니다.
93은(는) 소수가 아닙니다.
92은(는) 소수가 아닙니다.
91은(는) 소수가 아닙니다.
90은(는) 소수가 아닙니다.
89은(는) 소수입니다.
88은(는) 소수가 아닙니다.
87은(는) 소수가 아닙니다.
86은(는) 소수가 아닙니다.
85은(는) 소수가 아닙니다.
84은(는) 소수가 아닙니다.
83은(는) 소수입니다.
82은(는) 소수가 아닙니다.
81은(는) 소수가 아닙니다.
80은(는) 소수가 아닙니다.
79은(는) 소수입니다.
78은(는) 소수가 아닙니다.
77은(는) 소수가 아닙니다.
76은(는) 소수가 아닙니다.
75은(는) 소수가 아닙니다.
74은(는) 소수가 아닙니다.
73은(는) 소수입니다.
72은(는) 소수가 아닙니다.
71은(는) 소수입니다.
70은(는) 소수가 아닙니다.
69은(는) 소수가 아닙니다.
68은(는) 소수가 아닙니다.
67은(는) 소수입니다.
66은(는) 소수가 아닙니다.
65은(는) 소수가 아닙니다.
64은(는) 소수가 아닙니다.
63은(는) 소수가 아닙니다.
62은(는) 소수가 아닙니다.
61은(는) 소수입니다.
60은(는) 소수가 아닙니다.
59은(는) 소수입니다.
58은(는) 소수가 아닙니다.
57은(는) 소수가 아닙니다.
56은(는) 소수가 아닙니다.
55은(는) 소수가 아닙니다.
54은(는) 소수가 아닙니다.
53은(는) 소수입니다.
52은(는) 소수가 아닙니다.
51은(는) 소수가 아닙니다.
50은(는) 소수가 아닙니다.
49은(는) 소수가 아닙니다.
48은(는) 소수가 아닙니다.
47은(는) 소수입니다.
46은(는) 소수가 아닙니다.
45은(는) 소수가 아닙니다.
44은(는) 소수가 아닙니다.
43은(는) 소수입니다.
42은(는) 소수가 아닙니다.
41은(는) 소수입니다.
40은(는) 소수가 아닙니다.
39은(는) 소수가 아닙니다.
38은(는) 소수가 아닙니다.
37은(는) 소수입니다.
36은(는) 소수가 아닙니다.
35은(는) 소수가 아닙니다.
34은(는) 소수가 아닙니다.
33은(는) 소수가 아닙니다.
32은(는) 소수가 아닙니다.
31은(는) 소수입니다.
30은(는) 소수가 아닙니다.
29은(는) 소수입니다.
28은(는) 소수가 아닙니다.
27은(는) 소수가 아닙니다.
26은(는) 소수가 아닙니다.
25은(는) 소수가 아닙니다.
24은(는) 소수가 아닙니다.
23은(는) 소수입니다.
22은(는) 소수가 아닙니다.
21은(는) 소수가 아닙니다.
20은(는) 소수가 아닙니다.
19은(는) 소수입니다.
18은(는) 소수가 아닙니다.
17은(는) 소수입니다.
16은(는) 소수가 아닙니다.
15은(는) 소수가 아닙니다.
14은(는) 소수가 아닙니다.
13은(는) 소수입니다.
12은(는) 소수가 아닙니다.
11은(는) 소수입니다.
10은(는) 소수가 아닙니다.
9은(는) 소수가 아닙니다.
8은(는) 소수가 아닙니다.
7은(는) 소수입니다.
6은(는) 소수가 아닙니다.
5은(는) 소수입니다.
4은(는) 소수가 아닙니다.
3은(는) 소수입니다.
2은(는) 소수입니다.
1은(는) 소수가 아닙니다.
댓글 4
-
misol
2015.01.01 12:25
-
신평
2015.01.01 14:27
정규식 자체는 소수가 아닌지를 판별합니다.
-
퍼니엑스이
2015.01.01 14:23
소스가 간략하다고 무조건 좋은 것은 아니죠.
PCRE 계열 함수가 느린편이기 때문에 실제로 사용할 때는 최적화된 알고리즘을 써야할 겁니다.
이러한 방법도 있다는 것만 참고하시면 될 것 같습니다. -
신평
2015.01.01 14:26
네, 맞습니다. 역참조로 인하여 숫자가 커질 경우 오류가 발생할 수 있기에 실제 사용은 지양하는 것이 좋습니다.
숫자 만큼 1을 쓰고..?