За всі роки, з якими я робив цей виклик, 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
, що є складовим і тому добре.
Виграє найкоротший код, який можна виконати на будь-якій мові.
=
правил виключає більшість стандартних мов ...