Автор Тема: Наибольшее число)))  (Прочитано 4380 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ирин

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Наибольшее число)))
« : 07 Октября 2009, 13:36:24 »
Олимпиада чуть чуть...xD
  ;D

Дана последовательность натуральных чисел.
Найти в ней наибольшее число, сумма цифр соседей которого есть простое число(у первого и последнего по одном соседу).
Если таких чисел нет, то вывести -1.


входной файл input.txt
  • в первой строке одно натур число N (N<=100000).
  • во второй строке N натуральных чисел, записанных через пробел а12,...аni<=106).
выходной файл Output.txt должен содержать одно натуральное число.

Пример:
Input.txt         Output.txt

5                    6
46793              


::) Заранее спасибо...  :-*
« Последнее редактирование: 07 Октября 2009, 14:34:18 от Asix »

Оффлайн Ирин

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Наибольшее число)))
« Ответ #1 : 07 Октября 2009, 13:40:21 »
проблемы теперь в чем...
как проверить то, что число простое?... ну я лично пробовала делить на числа от 1 до н...

и еще..
"сумма ЦИФР соседей"
как взять Цифры?

Оффлайн ki

  • Ветеран
  • *****
  • Сообщений: 668
    • Просмотр профиля
Re: Наибольшее число)))
« Ответ #2 : 07 Октября 2009, 14:24:36 »
цифры можно взять целочисленным делением на 10...
пусть за это отвечает  оператор 'div':
digit=(N-(N div 10i))div10i-1
вроде так....
соответственно при i=1 получим единицы, при i=2 десятки и т.д.

а для определения "простоты" можно промежуточный массив с простыми числами для сравнения держать...сгенерированный, например при помощи "решета эратосфена"...

Оффлайн ki

  • Ветеран
  • *****
  • Сообщений: 668
    • Просмотр профиля
Re: Наибольшее число)))
« Ответ #3 : 07 Октября 2009, 14:48:58 »
Простите, поторопился...
digiti=(N-(N div 10i)*10i)div10i-1

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Re: Наибольшее число)))
« Ответ #4 : 28 Октября 2009, 22:40:50 »
Можно конечно просто сделать цикл обратного отсчета, который будет делить на числа от n-1 до 2. Если mod 0 везде, то число слложное. Но конечно это очень много вычислений выполняется
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩