Il 2013 ha la scomposizione in fattori primi 3*11*61
. Il 2014 ha la scomposizione in fattori primi 2*19*53
. Una proprietà interessante per quanto riguarda questi fattorizzazione è che esistono primi distinti nelle fattorizzazioni di 2013 e 2014 tale somma allo stesso numero: 11+61=19+53=72
.
Scrivi un programma o una funzione che accetta come input due numeri interi positivi maggiori di 1 e restituisce un valore di verità se esiste una somma di fattori primi selezionati di un numero che è uguale a una somma di fattori primi selezionati nel secondo numero e un valore falso altrimenti.
chiarimenti
- È possibile utilizzare più di due fattori primi. Non tutti i fattori primi del numero devono essere utilizzati nella somma. Non è necessario che il numero di numeri primi utilizzati dai due numeri sia uguale.
- Anche se un numero primo viene elevato a una potenza maggiore di 1 nella fattorizzazione di un numero, può essere usato solo una volta nella somma dei numeri primi per il numero.
- 1 non è un numero primo.
- Entrambi i numeri di input saranno inferiori a
2^32-1
.
Casi 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
Questo è il codice golf. Si applicano le regole standard. Vince il codice più breve in byte.
true
, poiché condividono il fattore 7
?