- #include <iostream> 
- #include <iterator> 
- #include <algorithm> 
-   
- template <typename T, int N> 
- int size(T (&)[N]) 
- { 
- 	return N; 
- } 
-   
- bool primeCheck(int p) { 
-     if(p<2) return false; 
-   
-     // Really slow way to check, but works 
-     for(int d = 2; d<p; ++d) { 
-         if (0==p%d) return false; // found a divisor 
-     } 
-     return true; // no divisors found 
- } 
-   
- int countPrimes(int *a, int size) { 
-     int numberPrime = 0; 
-     for (int i = 0; i < size; ++i) { 
-         // For each element in the input array, check it, 
-         // and increment the count if it is prime. 
-         if(primeCheck(a[i])) 
-             ++numberPrime; 
-     } 
-     return numberPrime; 
- } 
-   
- int main() { 
- 	int input[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; 
- 	//                *  *     *     *             *   5 total 
- 	std::cout << countPrimes(input, size(input)) << '\n'; 
- 	std::cout << std::count_if(std::begin(input), std::end(input), primeCheck) << '\n'; 
- 	return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgaW50IE4+CmludCBzaXplKFQgKCYpW05dKQp7CglyZXR1cm4gTjsKfQoKYm9vbCBwcmltZUNoZWNrKGludCBwKSB7CiAgICBpZihwPDIpIHJldHVybiBmYWxzZTsKCiAgICAvLyBSZWFsbHkgc2xvdyB3YXkgdG8gY2hlY2ssIGJ1dCB3b3JrcwogICAgZm9yKGludCBkID0gMjsgZDxwOyArK2QpIHsKICAgICAgICBpZiAoMD09cCVkKSByZXR1cm4gZmFsc2U7IC8vIGZvdW5kIGEgZGl2aXNvcgogICAgfQogICAgcmV0dXJuIHRydWU7IC8vIG5vIGRpdmlzb3JzIGZvdW5kCn0KCmludCBjb3VudFByaW1lcyhpbnQgKmEsIGludCBzaXplKSB7CiAgICBpbnQgbnVtYmVyUHJpbWUgPSAwOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAvLyBGb3IgZWFjaCBlbGVtZW50IGluIHRoZSBpbnB1dCBhcnJheSwgY2hlY2sgaXQsCiAgICAgICAgLy8gYW5kIGluY3JlbWVudCB0aGUgY291bnQgaWYgaXQgaXMgcHJpbWUuCiAgICAgICAgaWYocHJpbWVDaGVjayhhW2ldKSkKICAgICAgICAgICAgKytudW1iZXJQcmltZTsKICAgIH0KICAgIHJldHVybiBudW1iZXJQcmltZTsKfQoKaW50IG1haW4oKSB7CglpbnQgaW5wdXRbXSA9IHsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTF9OwoJLy8gICAgICAgICAgICAgICAgKiAgKiAgICAgKiAgICAgKiAgICAgICAgICAgICAqICAgNSB0b3RhbAoJc3RkOjpjb3V0IDw8IGNvdW50UHJpbWVzKGlucHV0LCBzaXplKGlucHV0KSkgPDwgJ1xuJzsKCXN0ZDo6Y291dCA8PCBzdGQ6OmNvdW50X2lmKHN0ZDo6YmVnaW4oaW5wdXQpLCBzdGQ6OmVuZChpbnB1dCksIHByaW1lQ2hlY2spIDw8ICdcbic7CglyZXR1cm4gMDsKfQ==