2013 memiliki faktorisasi utama 3*11*61
. 2014 memiliki faktorisasi utama 2*19*53
. Properti menarik mengenai faktorisasi ini adalah bahwa terdapat bilangan prima yang berbeda dalam faktorisasi 2013 dan 2014 bahwa jumlah ke nomor yang sama: 11+61=19+53=72
.
Tulis sebuah program atau fungsi yang mengambil input dua bilangan bulat positif lebih besar dari 1 dan mengembalikan nilai kebenaran jika ada jumlah faktor prima terpilih dari satu angka yang sama dengan jumlah faktor prima terpilih di angka kedua, dan nilai falsey sebaliknya.
Klarifikasi
- Lebih dari dua faktor utama dapat digunakan. Tidak semua faktor utama dari jumlah tersebut perlu digunakan dalam penjumlahan. Jumlah bilangan prima yang digunakan dari dua bilangan tidak harus sama.
- Bahkan jika suatu prima dinaikkan ke suatu daya yang lebih besar dari 1 dalam faktorisasi suatu bilangan, ia hanya dapat digunakan sekali dalam jumlah bilangan prima untuk bilangan tersebut.
- 1 bukan prima.
- Kedua nomor input akan kurang dari
2^32-1
.
Uji kasus
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
Ini kode golf. Aturan standar berlaku. Kode terpendek dalam byte menang.
true
, ketika mereka berbagi faktor 7
?