#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==