Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- SHA512
- Android
- design pattern
- Reflect
- stringprintf
- async
- go
- RAII
- WebView
- coroutines
- AES
- Chrono
- Functional
- template
- ChromeTab
- c++
- web
- Scala
- Clojure
- sha256
- traits
- Observer
- program
- haskell
- sprintf
- CustomTab
- SHA1
- type_traits
- kotlin
- ranges
Archives
- Today
- Total
프로그래밍 검색 블로그
템플릿 메타 프로그래밍 소수 구하기 본문
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | //bool is_prime(unsigned long long v){ // for(unsigned long long i = 2; i < v; i++){ // if ( v % i == 0 ) // return false; // } // return true; //} template<unsigned long long N, unsigned long long C> struct is_mod{ static const bool value = (N % C != 0LL) && is_mod<N, C - 1LL>::value; }; template<unsigned long long N> struct is_mod<N, 2LL>{ static const bool value = (N % 2 != 0LL); }; template<unsigned long long N> struct is_prime{ static const bool value = is_mod<N, N - 1LL>::value; }; template<> struct is_prime<0LL>{ static const bool value = false; }; template<> struct is_prime<1LL>{ static const bool value = false; }; template<> struct is_prime<2LL>{ static const bool value = true; }; | cs |
테스트
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <iostream> using namespace std; int main(){ cout << is_prime<2>::value <<endl; cout << is_prime<3>::value <<endl; cout << is_prime<4>::value <<endl; cout << is_prime<5>::value <<endl; cout << is_prime<6>::value <<endl; cout << is_prime<7>::value <<endl; cout << is_prime<8>::value <<endl; cout << is_prime<9>::value <<endl; cout << is_prime<10>::value <<endl; cout << is_prime<11>::value <<endl; cout << is_prime<12>::value <<endl; cout << is_prime<13>::value <<endl; } | cs |
'연습장' 카테고리의 다른 글
함수형 프로그래밍 체이닝 (0) | 2017.10.14 |
---|---|
함수형 피타고라스 삼각형 구하기 (0) | 2017.10.14 |
템플릿 메타 프로그래밍 피보나치 (0) | 2017.10.05 |
템플릿 메타 프로그래밍 최대공약수 최대공배수 (0) | 2017.10.05 |
템플릿 메타 프로그래밍 binary (0) | 2017.10.05 |
Comments