либо

b' = а + b, а' = 2*а, что также сохраняет справедливость отношения а' < b'.

Следовательно, вот ситуация, которую цикл оставляет инвариантной:

n = а*p + b2;

а — степень двойки,

p четно,

b нечетно, b < а.

Кроме того, мы знаем, что при выходе из цикла p < а.

Если p равно нулю, то n = b2. Тогда мы видим, что n — квадрат числа b, которое выводится, и все закончено.

Но n может оказаться полным квадратом и тогда, когда p не нуль. Попробуем рассмотреть все возможные случаи. Положим n = r2 (r нечетно). Соотношение

r2 = ар + b дает

r2 ? b2 = ар.

Положим r + b = 2u, r ? b = 2v (r и b нечетны). Отсюда получаем 4uv = ар.

Поскольку r = u + v, где r нечетно, получаем, что u и v не могут быть числами одинаковой четности, так что одно из них четно, а другое нечетно. Так как а является степенью двойки, то нечетный сомножитель относится к p. Выявим его, полагая р = s2t, где s нечетно, a t ? 1 (p четно).

Напомним, что а = 2k. В этих обозначениях 4uv = ар = s2k+t, uv = s2k +t?2.

Возможные решения для пары u, v имеют вид пар

s'2k+t-2, s''

где s's' = s.

Покажем сначала, что s' — меньший из этих двух элементов пары. Вследствие t ? 1 имеем k ? t ? k + t ? 2.

Вследствие p < а последовательно выводим

s2t < 2k,

s's'2t < 2k.

s's' < 2k- t ? 2k+t-2 ? s'22k+t- 2

(потому что s' нечетен и не меньше 1).

Следовательно, нужно взять u = s'2k+t-2, v = s'.

Покажем теперь, что нужно обязательно взять s' =1, s' = s. По выбору u и v

b = 2k+t ?2s' ? s' < а = 2k.

Отсюда получаем:

s' > 2k+t ?2s' ? 2k,

и, так как t ? 1:

s' > 2k?1s' ? 2k,

s = s's' > 2k?1s'2 ? 2ks = 2k ?1s' (s' ? 2).

Вследствие р = s2t < а = 2k выводим s < 2k ?t ? 2k?1.

Объединим два полученных неравенства:

2k?1s' (s' ? 2) < x < 2k?1, поэтому s' (s' ? 2) < 1.

Единственное нечетное число s', удовлетворяющее этому соотношению, это s' = 1. Следовательно, у нас остается единственная возможность:

u = 2k+t-2, v = s,

b = u ? v = 2k+t-2 ? s < а = 2k,

s > 2k+t-2 ? 2k.

Так как s < 2k ?t, то t должно быть таким, чтобы

2k?t > 2k+t-2 ? 2k.

Поскольку t должно быть строго положительно, то его единственными возможными значениями являются t = 1 и t = 2.

При t = 1 имеем

p = 2s, b =

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату