2013 рік є основним фактором 3*11*61
. 2014 рік має основну факторизацію 2*19*53
. Цікава властивість щодо цих факторизацию є те , що існує різні прості числа в факторизацию 2013 і 2014 , що сума до того ж номеру: 11+61=19+53=72
.
Напишіть програму або функцію, яка приймає за свій вхід два додатні цілі числа, що перевищують 1, і повертає тривале значення, якщо існує сума вибраних простих коефіцієнтів одного числа, що дорівнює сумі вибраних простих факторів у другому числі, і a значення фальси інакше.
Роз'яснення
- Можна використовувати більше двох основних факторів. Не всі прості множники числа повинні використовуватися в сумі. Не обов’язково, щоб кількість простих чисел, використаних з двох чисел, було рівним.
- Навіть якщо прайм підвищений на деяку потужність, що перевищує 1, при факторизації числа, його можна використовувати лише один раз у сумі простих чисел.
- 1 не є простим.
- Обидва вхідні числа будуть меншими за
2^32-1
.
Тестові справи
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
Це код гольфу. Діють стандартні правила. Найкоротший код у байтах виграє.
true
, як вони поділяють коефіцієнт 7
?