#include #include #include #include #include #include #include void SieveOfEratosthenes(int n,int arr[]) { // Create a boolean array "prime[0..n]" and initialize // all entries it as true. A value in prime[i] will // finally be false if i is Not a prime, else true. bool prime[n+1]; memset(prime, true, sizeof(prime)); for (int p=2; p*p<=n; p++) { // If prime[p] is not changed, then it is a prime if (prime[p] == true) { // Update all multiples of p for (int i=p*2; i<=n; i += p) prime[i] = false; } } // Print all prime numbers int z=0; for (int p=2; p<=n; p++){ if (prime[p]){ // cout << p << " "; arr[z]=p; z++; } } } int main() { int n1,i; long long int result,total,b,y,x; scanf("%i", &n1); int arr[100000]; int n=1000000; SieveOfEratosthenes(n,arr); long long int *a = malloc(sizeof(long long int) * n1); for (int a_i = 0; a_i < n1; a_i++) { scanf("%lli",&a[a_i]); } // printf("%d",arr[78497]); // printf("%ld\n", result); result=0; for(i=0;i