%I #24 Feb 22 2024 02:17:27
%S 0,2,1,3,7,0,29,27,0,90,236,0,758,1039,0,3949,9325,0,32907,51243,0,
%T 184458,426372,0,1552101,2537233,0,9526385,21117111,0,78112040,
%U 134568638,0,505079269,1096046406,0
%N Number of compositions of n which are prime when concatenated and read as a decimal string.
%e The eight compositions of 4 are 4,13,31,22,112,121,211,1111 of which 3 {13,31,211} are primes.
%e Primes for n=11 are: 11, 29, 47, 83, 101, 137, 173, 191, 227, 263, 281, 317, 353, 443, 461, 641, 821, 911, 1163, 1181, ..., 131111111, 212111111, 1111111121, 1111211111, 1121111111.
%t f[n_] := If[n > 5 && Mod[n, 3] == 0, 0, Block[{len = PartitionsP@ n, p = IntegerPartitions[n], c = 0}, Do[c = c + Length@ Select[ FromDigits /@ Join @@@ IntegerDigits /@ Permutations@ p[[i]], PrimeQ@# &], {i, len}]; c]]; Array[f, 28] (* _Robert G. Wilson v_, Aug 03 2012 *)
%o (Python)
%o from sympy import isprime
%o from sympy.utilities.iterables import partitions, multiset_permutations
%o def a(n):
%o c = 0
%o for p in partitions(n):
%o plst = [k for k in p for _ in range(p[k])]
%o s = sum(sum(map(int, str(pi))) for pi in plst)
%o if s != 3 and s%3 == 0: continue
%o for m in multiset_permutations(plst):
%o if isprime(int("".join(map(str, m)))):
%o c += 1
%o return c
%o print([a(n) for n in range(1, 22)]) # _Michael S. Branicky_, Nov 19 2022
%o (Python)
%o from collections import Counter
%o from sympy.utilities.iterables import partitions, multiset_permutations
%o from sympy import isprime
%o def A116381(n): return sum(1 for p in partitions(n) for a in multiset_permutations(Counter(p).elements()) if isprime(int(''.join(str(d) for d in a)))) if n==3 or n%3 else 0 # _Chai Wah Wu_, Feb 21 2024
%Y Cf. A069869, A069870; not the same as A073901.
%K base,nonn,more
%O 1,2
%A _Robert G. Wilson v_, Feb 06 2006
%E a(29)-a(33) from _Michael S. Branicky_, Nov 19 2022
%E a(34)-a(36) from _Michael S. Branicky_, Jul 10 2023