웹마스터 팁
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
네, 맞습니다. 역참조로 인하여 숫자가 커질 경우 오류가 발생할 수 있기에 실제 사용은 지양하는 것이 좋습니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
php 세션을 memcache에 저장할 때 주의할 점 | XE러버 | 2014.07.04 |
클리어픽스(clearfix)의 개념과 방법 | 시니시즘 | 2014.07.04 |
XE Core:1.7.5.3 조회수 증가, 자기 게시글 클릭시 조회수 증가 [1] | 때린데 또때려 | 2014.07.04 |
에디터 컴포넌트에 현재 mid 값 넘겨주기. [1] | 애니즌 | 2014.07.03 |
jqm(jQuery Mobile) 사용 시 XE의 CSS 와 충돌할 때 | Canto | 2014.07.03 |
[javascript] 기초강좌 | 4장. 비교제어문(if문) | hiwebs | 2014.07.02 |
[javascript] 기초강좌 | 03 논리연산자, 비트, 삼항연산자, 기타연산자 | hiwebs | 2014.07.02 |
외국어 스팸 방어 [2] | DoorWeb | 2014.07.01 |
[nginx] Rewrite 예외 설정 | okiz | 2014.06.30 |
닉네임 중복체크 버그 해결방법 [7] | 소렌트. | 2014.06.29 |
BlogAPI 활용하기 | 맞장 | 2014.06.29 |
php에서 한글언어 작성이 깨질때 [1] | 광개토대왕3 | 2014.06.28 |
min.js min.css 정리해서 보기 | Happyphp | 2014.06.26 |
관리자가 글 쓸때는 분류를 선택 안 해도 등록되도록 (공지글을 쓸때를 위해) 개선 [2] | sejin7940 | 2014.06.21 |
XE에서 신디케이션 제거하기 [1] | mAKEkr | 2014.06.20 |
상단에 스르르~ 닫기 가능한 배너 달기 [30] | 야옹잉 | 2014.06.20 |
관리자페이지에서 콘텐츠->파일 에서 등록된 파일 전체 리스트에 이미지가 바로 나타나도록 [2] | sejin7940 | 2014.06.19 |
목록에서 이미지 팝업 이용하기 | Happyphp | 2014.06.19 |
손님이 비밀글 작성한 직후에도 글 보려면 반드시 비밀번호 넣게 하는 방법 [1] | sejin7940 | 2014.06.18 |
htm과 html의 차이는 ? | 디테일 | 2014.06.17 |
숫자 만큼 1을 쓰고..?