28 lines
606 B
Plaintext
28 lines
606 B
Plaintext
ClearAll[VampireQ]
|
|
VampireQ[num_Integer] := Module[{poss, divs},
|
|
divs = Select[Divisors[num], # <= Sqrt[num] &];
|
|
poss = {#, num/#} & /@ divs;
|
|
If[Length[poss] > 0,
|
|
poss = Select[poss, Mod[#, 10] =!= {0, 0} &];
|
|
If[Length[poss] > 0,
|
|
poss = Select[poss, Length[IntegerDigits[First[#]]] == Length[IntegerDigits[Last[#]]] &];
|
|
If[Length[poss] > 0,
|
|
poss = Select[poss, Sort[IntegerDigits[num]] == Sort[Join @@ (IntegerDigits /@ #)] &];
|
|
If[Length[poss] > 0
|
|
,
|
|
Sow[{num, poss}];
|
|
True
|
|
,
|
|
False
|
|
]
|
|
,
|
|
False
|
|
]
|
|
,
|
|
False
|
|
]
|
|
,
|
|
False
|
|
]
|
|
]
|