#include #include bool isprime(unsigned int num) { // Handle edge cases (0, 1, and even numbers greater than 2) if (num <= 1 || num % 2 == 0 && num > 2) { return false; } // Efficiently check divisibility only up to the square root of num for (unsigned int i = 3; i * i <= num; i += 2) { if (num % i == 0) { return false; } } return true; } int count_primes(unsigned int values[], int size) { int count = 0; for (int i = 0; i < size; i++) { if (isprime(values[i])) { count++; } } return count; } int main() { unsigned int arr1[] = {1, 20, 21, 43, 32, 42, 2344, 42433, 6, 2, 0, 22, 45, 47, 1033, 1247}; int size1 = sizeof(arr1) / sizeof(arr1[0]); unsigned int arr2[] = {21, 22, 44, 33, 7, 3, 1, 23, 46, 48, 1034, 1248}; int size2 = sizeof(arr2) / sizeof(arr2[0]); int primes1 = count_primes(arr1, size1); int primes2 = count_primes(arr2, size2); int total_primes = primes1 + primes2; printf("Total number of primes: %d\n", total_primes); return 0; }