За всі роки, з якими я робив цей виклик, 2017 рік - це перший рік, який став головним числом. Тож питання стосуватиметься простих чисел та їх властивостей.
Ваше завдання полягає в тому, щоб створити програму або функцію, яка буде приймати довільно велике додатне ціле число як вхід, і виводити чи повертати, незалежно від того, чи є число 2 077-розсипним , тобто чи найбільший простий коефіцієнт у цьому числі становить 2 077 або менше.
Деякі приклади входів та їх виходів:
1 (has no prime factors)
true
2 (= 2)
true
80 (= 2 x 2 x 2 x 2 x 5)
true
2017 (= 2017)
true
2019 (= 3 x 673)
true
2027 (= 2027)
false
11111 (= 41 x 271)
true
45183 (= 3 x 15061)
false
102349 (= 13 x 7873)
false
999999 (= 3 x 3 x 3 x 7 x 11 x 13 x 37)
true
1234567 (= 127 x 9721)
false
4068289 (= 2017 x 2017)
true
Вашій програмі не потрібно буквально виводити trueі false- будь-які неправдиві або хибні значення, а насправді будь-які два різні результати, які відповідають істинним та помилковим випадкам, є нормальними.
Однак ви не можете використовувати будь-які праймери у вихідному коді. Прайми бувають двох видів:
Символи або послідовності символів, які представляють букварі простого числа.
Символи
2,3,5і7є незаконними в мовах , де числа є допустимими лексеми.Цей номер
141є незаконним, оскільки він містить41, хоча він1і4в іншому випадку дійсний.Символи
BтаD(абоbіd) є незаконними в мовах, де вони зазвичай використовуються як 11 та 13, наприклад CJam або Befunge.
Символи, які мають найцінніші значення Unicode або містять байтові значення у кодуваннях.
Символи
%)+/5;=CGIOSYaegkmqнезаконні в ASCII, а також символ повернення каретки.Символ
óнезаконний в UTF-8, оскільки його кодування є0xb3в ньому. Однак в ISO-8859-1 його кодування є простим0xf3, що є складовим і тому добре.
Виграє найкоротший код, який можна виконати на будь-якій мові.
=правил виключає більшість стандартних мов ...