2013 tem a fatoração principal 3*11*61
. 2014 tem a fatoração principal 2*19*53
. Uma propriedade interessante em relação a estes fatorações é que existem números primos distintos nas fatorações de 2013 e 2014 que soma para o mesmo número: 11+61=19+53=72
.
Escreva um programa ou função que tenha como entrada dois números inteiros positivos maiores que 1 e retorne um valor verdadeiro se existir uma soma dos fatores primos selecionados de um número que seja igual a uma soma dos fatores primos selecionados no segundo número e um valor falsey caso contrário.
Esclarecimentos
- Mais de dois fatores principais podem ser usados. Nem todos os fatores primos do número precisam ser usados na soma. Não é necessário que o número de números primos usados nos dois números seja igual.
- Mesmo que um primo seja elevado a uma potência maior que 1 na fatoração de um número, ele pode ser usado apenas uma vez na soma dos primos do número.
- 1 não é primo.
- Os dois números de entrada serão menores que
2^32-1
.
Casos de teste
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
Isso é código de golfe. Aplicam-se regras padrão. O menor código em bytes vence.
true
, pois eles compartilham o fator 7
?