Пятизначные простые числа в сетке 5x5

|---|---|---|---|---|
| 1 | 1 | 3 | 5 | 1 |
|---|---|---|---|---|
| 3 | 3 | 2 | 0 | 3 |
|---|---|---|---|---|
| 3 | 0 | 3 | 2 | 3 |
|---|---|---|---|---|
| 1 | 4 | 0 | 3 | 3 |
|---|---|---|---|---|
| 3 | 3 | 3 | 1 | 1 |
|---|---|---|---|---| 

(Рисунок 1)

На рисунке 1 изображен квадрат. Каждую строку, каждый столбец и две диагонали можно прочитать как простое пятизначное число. Строки читаются слева направо. Столбцы читаются сверху вниз. Обе диагонали читаются слева направо. Используя данные из файла INPUT.TXT, напишите программу, которая строит такие квадраты.

Простые числа должны иметь одинаковую сумму цифр (11 в примере). Цифра в верхнем левом углу квадрата заранее определена (1 в примере).

Простое число может использоваться более одного раза в одном квадрате.

Если существует несколько решений, все должны быть представлены. Пятизначное простое число не может начинаться с нулей, т. Е. 00003 НЕ является пятизначным простым числом.

Входные данные

11 1

Я пытаюсь ответить на вопрос из конкурса IOI'94 - Задача 3 - Простые числа.

Я построил большинство вспомогательных функций ...

  1. Использовал решето Эратосфена для генерации пятизначных простых чисел ( между 9999 и 100000)
  2. Создал функцию для вычисления суммы цифр (12345 = 1 + 2 + 3 + 4 + 5 = 15)
  3. Создал функцию для проверки массива, если сумма цифр одинакова. на всем протяжении
  4. Создана функция для проверки того, начинается ли число с указанной цифры (startWith (12345,1) return true)

Вопрос: Проблема в том, что я не знаю, как заполнить массив или использовать возможность поиска с возвратом, чтобы продолжайте проверять :(. Кто-нибудь может мне помочь? Как мне заполнить 2D-массив так, чтобы он содержал значения из основной таблицы, а сумма была правильной по всем углам?

* NB: Сито из Метод Эратосфена, который генерирует 5-значное простое число,также как возможность фильтрации значений, которые начинаются с X и суммируются до M *

Полный вопрос: http://olympiads.win.tue.nl/ioi/ioi94/contest/day1prb3/problem.html

Предполагаемый порядок добавления значений, просто не знаю, как это сделать: (.

 1  2  3  4  5
 6 13 14 12 15
 7 16 11 18 19
 8 10 20 22 23
 9 17 21 24 25
13
задан starblue 22 October 2011 в 07:32
поделиться