В этой задаче мы пытаемся решить две важные проблемы одновременно. Они есть:
- Учитывая целые числа a и b , скажите, является ли a b -1 простым числом.
- Даны целые числа a и b , вернуть nCr (a, b).
В частности, вы должны написать две программы, одна из которых выполняет первую задачу, а другая - другую. Поскольку мы хотим решить обе проблемы одновременно, рекомендуется использовать один и тот же кусок кода в обеих программах.
счет
Оценка ответа - расстояние Левенштейна между двумя программами. Чем ниже балл, тем лучше. В случае ничьей побеждает ответ с кратчайшим комбинированным кодом двух программ. Вы можете использовать этот скрипт для расчета баллов вашего решения.
правила
- Вы должны написать две программы на одном языке, которые решают задачи, описанные выше. Вы можете использовать любые методы ввода / вывода, которые вы хотите. Для задачи 1 вы можете вернуть истинное / ложное значение или выбрать два значения, которые означают true и false, и вернуть их соответственно. Например. Вы можете выбрать, что
"prime"
означает истину, а"not prime"
значит ложь. - Используемые вами алгоритмы должны работать для всех возможных входов, но это нормально, если код не подходит для больших чисел из-за ограничений используемого типа чисел. Вы можете предположить, что ввод действителен.
Никакое подмножество программы не должно решить проблему, т.е. код не должен работать, если какие-либо символы удалены. Например, следующий код недействителен, поскольку можно удалить неиспользуемый блок else, не нарушая программу:
if (1) { /* change to 0 to get the second program*/ ... } else { ... }
Стандартные лазейки не допускаются.
Контрольные примеры
а б -1 простое число?
a b
1 1 false
2 3 true
5 2 false
2 5 true
4 3 false
2 7 true
Ncr
a b nCr(a,b)
1 1 1
5 2 10
4 3 4
10 7 120
12 5 792