/C04016 - Đếm các số nguyên tố trong dãy

<Problem>

https://code.ptit.edu.vn/student/question/C04016
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <math.h>


#define max(i, j) ((i > j) ? i : j)
#define min(i, j) ((i < j) ? i : j)

int main() {
	int t;

	scanf("%d", &t);

	for (int u = 1; u <= t; u++) {
		int n;
		scanf("%d", &n);

		int arr[101];

		int dem[100000] = { 0 };
		bool check[100000] = { false };

		int count = 0;

		int maxVal = 0;

		for (int i = 0; i < n; i++) {
			scanf("%d", &arr[i]);
			maxVal = max(maxVal, arr[i]);

			if (arr[i] == 2) dem[arr[i]]++;
			else if (arr[i] > 2) {
				bool flag = true;
				for (int j = 2; j <= trunc(sqrt(arr[i])); j++) {
					if (arr[i] % j == 0) {
						flag = false;
						break;
					}
				}

				if (flag == true) dem[arr[i]]++;
			}
		}

		printf("Test %d:\n", u);

		for (int i = 0; i < maxVal; i++) {
			if (dem[i] > 0)
				printf("%d xuat hien %d lan\n", i, dem[i]);
		}


		printf("\n");
	}

	return 0;
}