2013 a la factorisation principale 3*11*61
. 2014 a la factorisation principale 2*19*53
. Une propriété intéressante au sujet de ces factorisation est qu'il existe des nombres premiers distincts dans les décompositions de 2013 et 2014 cette somme au même numéro: 11+61=19+53=72
.
Écrivez un programme ou une fonction qui prend en entrée deux entiers positifs supérieurs à 1 et renvoie une valeur vraie s'il existe une somme de facteurs premiers sélectionnés d'un nombre qui est égale à une somme de facteurs premiers sélectionnés dans le deuxième nombre, et un valeur falsey autrement.
Clarifications
- Plus de deux facteurs premiers peuvent être utilisés. Il n'est pas nécessaire d'utiliser tous les facteurs premiers du nombre dans la somme. Il n'est pas nécessaire que le nombre de nombres premiers utilisés à partir des deux nombres soit égal.
- Même si un nombre premier est élevé à une puissance supérieure à 1 dans la factorisation d'un nombre, il ne peut être utilisé qu'une seule fois dans la somme des nombres premiers pour le nombre.
- 1 n'est pas premier.
- Les deux nombres entrés seront inférieurs à
2^32-1
.
Cas de test
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
C'est le golf de code. Des règles standard s'appliquent. Le code le plus court en octets gagne.
true
, car ils partagent le facteur 7
?