0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 2
|
|
1 | |
поиск простых чисел06.12.2016, 05:41. Показов 1589. Ответов 5
Метки нет Все метки)
(
Как найти количество цифр n- значных чисел, у которых сумма любых двух соседних цифр является простым числом.
Формат входных данных: В единственной строке задано целое положительное число n (n≤20). Формат выходных данных: В первой строке вывести ответ Пример: input.txt: 3 output.txt: 125 Дали индивидуальное задание по анализу сложности. Только учусь программировать, сам понимаю как можно сделать, но написать код не в состоянии. Однокурсники говорят руку еще не набил. Так вот, думаю... Можно сделать функцию, где есть цикл до 999. И в каждый раз когда она генерирует новую комбинацию проверить просуммировать соседние, разбив на a b c. Если условие удовлетворяет +1 к счетчику. Вроде так
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
06.12.2016, 05:41 | |
Ответы с готовыми решениями:
5
|
2758 / 1912 / 569
Регистрация: 05.06.2014
Сообщений: 5,561
|
||||||
06.12.2016, 07:37 | 2 | |||||
![]() Решение
Полагаю, слово "цифр" лишнее.
И даже это закодить не можете. Вы вообще хоть что-то учили? Ну, в любом случае (особо не тестировал, но вроде бы работает как надо):
2
|
Диссидент
![]() 27191 / 16948 / 3745
Регистрация: 24.12.2010
Сообщений: 38,131
|
|
06.12.2016, 13:32 | 3 |
Имхо, самый простой, но и самый безобразный в смысле эффективности путь.
Конечно, ни один алгоритм по эффективности не сравнится с предложенным уважаемым Renji, ![]() Но он, увы, требует большой предварительной работы. Однако, легко заметить, что если стоит цифра 0, то за ней (и перед ней) может стоять только 2, 3, 5, 7 цифра 1 может иметь в соседях только 1, 2, 4, 6 цифра 2 - 0, 1, 3, 5, 9 Такие таблички можно составить для всех 10-цифр. И подумать немножко... Не исключен и рекурсивный алгоритм...
1
|
2758 / 1912 / 569
Регистрация: 05.06.2014
Сообщений: 5,561
|
|
06.12.2016, 18:53 | 4 |
Строчек сорок, быстренько собранных на коленке и выполняемых за секунду. Единственная сложность тут - задача не на программирование, а на комбинаторику.
Обозначим за F(N,X) число последовательностей из N цифр, в которой каждые две соседние цифры в сумме дают простое число, а первая цифра равна X. Очевидно, что F(N,X) есть сумма всех F(N-1,Y), для таких Y, которые при сложении с X дают простое число. Алеоп, у нас есть быстрый рекурсивный вывод F(N,X) из F(N-1,X). Ну а решение задачи - сумма F(N,1), F(N,2) ... F(N,9). В сумму не включается F(N,0), так как на ноль многозначное число начинаться не может.
1
|
Диссидент
![]() 27191 / 16948 / 3745
Регистрация: 24.12.2010
Сообщений: 38,131
|
|
06.12.2016, 19:39 | 5 |
Я бы не стал разделять эти два понятия. Скорее, это решение комбинаторной задачи программным способом. Такое случается сплошь и рядом
![]() Да, все похоже на правду. ![]() Что-то похожее я имел в виду в конце поста 3 Но я тут придумал неплохой нерекурсивный алгоритм. Пока в лом его писать.... Может быть попозже...Опять же ничего сложного там нет...
1
|
Диссидент
![]() 27191 / 16948 / 3745
Регистрация: 24.12.2010
Сообщений: 38,131
|
||||||
14.12.2016, 17:42 | 6 | |||||
![]()
2
|
14.12.2016, 17:42 | |
Помогаю со студенческими работами здесь
6
Поиск простых чисел Поиск простых чисел
Поиск простых чисел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |