Имя: Пароль:
IT
 
Произведение является квадратом
0 Ненавижу 1С
 
гуру
20.07.11
12:33
На задворках интернета откопал задачку
При каких n произведение вида:
(1*1+1)*(2*2+1)*(3*3+1)*...*(n*n+1) является квадратом?
Тривиальный минимальный пример n=3 (1+1)*(4+1)*(9+1)=100
1 Дикообразко
 
20.07.11
12:34
угадал автора ))
2 Ненавижу 1С
 
гуру
20.07.11
12:34
(1) получи +3 к опыту
3 Дикообразко
 
20.07.11
12:37
(0) так если максимум ничем не ограничен, то n будет бесконечным. Разве не?
4 Ненавижу 1С
 
гуру
20.07.11
12:39
(3) какой максимум? ты задачу прочти
5 Ненавижу 1С
 
гуру
20.07.11
12:39
+(4) там конечные произведения
6 Дикообразко
 
20.07.11
12:41
(4) n может быть равно
1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?
7 Ненавижу 1С
 
гуру
20.07.11
12:43
(6) может, но проверить надо удовлетворяет ли оно условию

просто вычислениями не удается ничего подобрать кроме 3
8 Fragster
 
гуру
20.07.11
12:45
3
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Обработано до 101
9 Fragster
 
гуру
20.07.11
12:45
Процедура КнопкаВыполнитьНажатие(Кнопка)
   Сч = 0;
   ТМП = 1;
   Для Сч = 1 По Макс Цикл
       ОбработкаПрерыванияПользователя();
       Если Сч %10 = 0 Тогда
           Состояние(Сч);
       КонецЕсли;
       ТМП = ТМП * (Сч*Сч +1);
       Кор = SQRT(ТМП);
       Если Кор = Цел(Кор) Тогда
           Сообщить(Сч);
       КонецЕсли;
   КонецЦикла;
   Сообщить("Обработано до "+Сч);
КонецПроцедуры
10 Ненавижу 1С
 
гуру
20.07.11
12:50
(8) брехня http://www.wolframalpha.com/input/?i=factor(Prod((n*n%2B1)%2Cn%3D1..17))
(9) издержки неточности вычислений
11 Fragster
 
гуру
20.07.11
12:51
(10) да я понял уже... тут маткад нужен
12 Дикообразко
 
20.07.11
12:52
(10) в конце школы, помню на олимпиаде была задачка,
реализовать факториал чисел до 100
13 Дикообразко
 
20.07.11
12:53
(11) можно просто в матрицу загнать
1 - единицы
2 - десятки
3 - сотни
4 - тысячи
и т.д.
14 ado
 
20.07.11
13:06
(12) Ха! У меня тоже :-)
15 RomaH
 
naïve
20.07.11
13:09
не понял - квадратом чего?
произведение (ну функция описаная в (0)) 3 является квадратом 10?
16 Ненавижу 1С
 
гуру
20.07.11
13:14
(15) именно, квадратом 10
имеется ввиду квадратом целого числа
17 wertyu
 
20.07.11
13:40
надо каждое последующее (n*n + 1) факторизовывать, тогда ответами будут все n, когда количество всех простых множителей будет чётное
18 wertyu
 
20.07.11
13:42
например до n=7
2 - 4
5 - 4
13 - 1
37 - 1
т.е. для дальнейшего поиска необходимы пары к 13 и 37
19 wertyu
 
20.07.11
13:43
пардон 17 пропустил
17 - 1
к нему тоже нужна пара
20 RomanYS
 
21.07.11
00:06
n=3 - единственное решение.
Легко доказывается, что если в разложении данного произведения на простые множители есть член k >= 2n, то только в степени 1.
Иначе говоря, если F(n) % k = 0, то на F(n) % (k*k) <> 0.

Остается доказать, что такие множители существуют (для n > 3). Как строго доказать не знаю, но уже на нескольких итерациях получаются очень большие n:

      n          k  новое n=(k-1)/2
      4         17          8
      9         41         20
     21        401        200
    201      20201      10100
  10099   50994901   25497450
25497449 7372813009 3686406504