EDIT: Um die Komplexität zu erhöhen, habe ich der Herausforderung mehr hinzugefügt.
In der Mathematik ist eine Vampirzahl (oder wahre Vampirzahl) eine zusammengesetzte natürliche Zahl v mit einer geraden Anzahl von Ziffern n, die in zwei ganze Zahlen x und y mit jeweils n / 2 Ziffern und nicht beide mit nachgestellten Nullen zerlegt werden kann. Dabei enthält v genau alle Ziffern von x und von y in beliebiger Reihenfolge, wobei die Multiplizität gezählt wird. x und y heißen die Reißzähne.
Weitere Informationen zu Vampire Number
Pseudovampir-Zahlen
Pseudovampir-Nummern ähneln Vampir-Nummern, mit der Ausnahme, dass die Reißzähne einer n-stelligen Pseudovampir-Nummer nicht mindestens zwei Ziffern lang sein müssen. Pseudovampir-Zahlen können eine ungerade Anzahl von Ziffern haben, zum Beispiel 126 = 6 × 21.
Eingang
Akzeptiere Zahlen von der Kommandozeile oder stdin
Ausgabe
- "1260 = 21 * 60" (kleinerer Fang zuerst, wenn die Zahl ein Vampir ist.)
- "1261 ist keine Vampirzahl." (wenn die Nummer keine Vampirnummer ist)
- "126 = 6 * 21". (wenn die Nummer eine Pseudovampir-Nummer ist)
BEARBEITEN: Wenn die Nummer mehrere Reißzähne hat, zeigen Sie es so an.
x = fang1a * fang1b = fang2a * fang2b
fang1a
Erscheint vorfang2a
wannfang1a < fang2a
Antworten:
Python - 188 Zeichen
Tut keine Pseudovampir-Zahlen
quelle
=
.Rubin, 190 Zeichen
quelle