Código (java) [Seleccionar] 
public class Primos {
    public static int SumaArreglo(int a[]) {
        return SumaArreglo(a, a.length - 1);
    }
    public static int SumaArreglo(int a[], int i) {
        if (i == 0)
        {
        return a[0];
        }
         else if (Primo(a[i]) == true) {
            return a[i] + SumaArreglo(a, i - 1);
        } else {
            return SumaArreglo(a, i - 1);
        }
    }
    public static boolean Primo(int n, int contador) {
        if (contador == 1) {
            return true;
        } else if (n % contador == 0) {
            return false;
        } else {
            return Primo(n, contador - 1);
        }
    }
    public static boolean Primo(int n) {
        if (n == 1) {
            return true;
        } else {
            return Primo(n, n / 2);
        }
    }
    public static void main(String[] args) {
        int A[] = {10,7,8,23,9,2};
        showMessageDialog(null, SumaArreglo(A));
    }
}
[MOD] para publicar código se usan las etiquetas GeSHi.