|
MATHEMATICA
|
<<DiscreteMath`Combinatorica` tm=TimeUsed[]; ta={{0}}; upps=PrimePi[{11, 787, 22259, 70879, 607889, 4456789, 40456789, 304456879, 1123465789, 10123457689}]; Do[ks1=KSubsets[{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, hu]; Table[fla=1; Do[If[Equal[Union[IntegerDigits[Prime[n]]], Part[ks1, j]]&&Equal[fla, 1], ta=Append[ta, Prime[n]]; Print[Prime[n]]; fla=0], {n, PrimePi[1+10^(hu-1)], Part[upps, hu]}], {j, 1, Length[ks1]}], {hu, 1, 10}]; {ta=Union[Delete[ta, 1]], TimeUsed[]-tm} (* program displays hits and measures CPU-time too *)
ss = Subsets[ Range[0, 9], 10]; dlt = {1, 2, 6, 8, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 30, 31, 32, 34, 38, 41, 42, 43, 45, 47, 49, 52, 53, 66, 67, 68, 70, 74, 77, 78, 79, 81, 83, 85, 88, 89, 127, 128, 130, 132, 134, 137, 153, 157, 159, 162, 168, 211, 212, 214, 216, 218, 221, 237, 241, 243, 246, 252, 332, 334, 337, 343, 373, 458, 460, 463, 469, 499, 604, 730}; ss = Delete[ss, {#} & /@ dlt]; k = 1; lst = {}; f[n_] := Block[{id = ss[[n]], p = NextPrime[ NestWhileList[ Quotient[#, 10] &, FromDigits[ ss[[n]]], # > 0 &][[-2]]*10^(Length[ss[[n]]] - If[ Mod[ FromDigits@ ss[[n]], 3] == 0, 0, 1]) - 1]}, While[ Union@ IntegerDigits@ p != id, p = NextPrime@ p]; p]; f[3] = 3; Sort@ Array[f, 950]
|