Напишите программу или функцию на любом языке, который сообщает, является ли ввод простым числом.
- Входные данные представляют собой строку, представляющую собой натуральное число в base-10.
- На выходе получается одна из двух строк «Prime» или «Not !!» который правильно определяет вход.
- Арифметические операторы, побитовые операторы, числовые переменные и константы, «математические вещи» в целом и т. Д. ... не допускаются нигде в вашей программе. Вы должны использовать строковые операции для выполнения всех необходимых «вычислений».
- Вы можете сравнить длины строк (которые являются числами) - но -10 с вашим счетом, если вы этого не сделаете.
- Ваша программа должна работать на любой длине ввода (учитывая достаточно памяти и времени).
- Наименьшее количество байтов (UTF-8) побеждает.
code-challenge
string
primes
бестолочь
источник
источник
Ответы:
Рубин, 64 - 10 = 54
Это перебирает строку '1' (плюс символ новой строки) во входную строку, используя встроенный в Ruby метод итерации строк, который выглядит очень похоже на добавление 1, но технически не создает высокоуровневую числовую переменную в любой точке. , Он использует тот факт, что для ввода n для создания строки длиной n будет n итераций, а затем использует регулярное выражение, чтобы определить, можно ли сгруппировать эту строку в идентичные подстроки.
источник
Рубин: 52 - 10 = 42
Используя вариацию этого знаменитого регулярного выражения.
Просто чтобы прояснить:
?_*gets.to_i
это строковая операция, которая добавляется"_"
к себе n раз, где n - номер ввода. Как я вижу, никакие длины строк не сравниваются, поэтому они должны удовлетворять критерию бонуса в 10 символов.источник
Arithmetic operators, bit-wise operators, numeric variables and constants
, и вы не можете классифицировать вызов метода как"math-stuff" in general
..?Perl 52-10 = 42
Реализация
демонстрация
источник
pop
вместо$ARGV[0]
, сохраните 4 символа, удалите числовой индекс массиваECMAScript 6, 159 - 10 = 149
Звучит как задача для регулярных выражений. I / O с
prompt
/alert
как обычно.Цикл while уменьшает десятичное число на одну каждую итерацию чисто регулярным выражением. Конечное регулярное выражение соответствует строке, состоящей из составного числа x, сначала сопоставляя один фактор, затем другой, повторяя первый фактор один для остальной части строки.
источник
Javascript 266
Создает функцию с именем N, которая будет печатать желаемый результат. Unminified версия выглядит следующим образом. Я выполнил минимизацию рук, чтобы очистить некоторые переменные, а затем провел их через uglify, а затем снова минимизировал их.
Протестировано с использованием этого фрагмента:
источник
Баш 66 - 10 = 56
Реализация
демонстрация
источник
Python 3, 109-10 = 89
Не сравнивая длины строк, но включение строк. Кросс-пост от дубликата Определите, является ли число простым без использования арифметики
источник