2013 hat die Primfaktorisierung 3*11*61
. 2014 hat die Primfaktorisierung 2*19*53
. Eine interessante Eigenschaft dieser Faktorisierungen in Bezug auf ist , dass es in den Faktorisierungen von 2013 und 2014 diese Summe auf die gleiche Anzahl verschiedene Primzahlen bestehen: 11+61=19+53=72
.
Schreiben Sie ein Programm oder eine Funktion, die zwei positive ganze Zahlen größer als 1 als Eingabe verwendet und einen Wahrheitswert zurückgibt, wenn eine Summe ausgewählter Primfaktoren einer Zahl vorhanden ist, die einer Summe ausgewählter Primfaktoren in der zweiten Zahl entspricht, und a Falscher Wert sonst.
Klarstellungen
- Es können mehr als zwei Primfaktoren verwendet werden. Nicht alle Primfaktoren der Zahl müssen in der Summe verwendet werden. Es ist nicht erforderlich, dass die Anzahl der Primzahlen aus den beiden Zahlen gleich ist.
- Selbst wenn eine Primzahl bei der Faktorisierung einer Zahl auf eine Potenz größer als 1 angehoben wird, kann sie in der Summe der Primzahlen für die Zahl nur einmal verwendet werden.
- 1 ist keine Primzahl.
- Beide Eingabenummern sind kleiner als
2^32-1
.
Testfälle
5,6
5=5
6=2*3
5=2+3
==>True
2013,2014
2013=3*11*61
2014=2*19*53
11+61=19+53
==>True
8,15
8=2^3
15=3*5
No possible sum
==>False
21,25
21=3*7
25=5^2
No possible sum (can't do 3+7=5+5 because of exponent)
==>False
Das ist Code Golf. Es gelten Standardregeln. Kürzester Code in Bytes gewinnt.
true
, da sie den Faktor teilen 7
?