Задача на пифагоровы тройки

Одно время была очень популярной геометрическая задача на определение периметра прямоугольного треугольника. Сторона  "a" известна и равна 89. Катет "b" и гипотенуза "c" выражаются натуральными числами. Найти периметр треугольника "p".
Ясно, что следует прежде всего найти примитивную пифагорову тройку. Обычно задачу приводят к системе двух уравнений, анализируются варианты и находят в результате периметр, равный p=8010. Тем не менее задача решается моментально по программе. Правда, нужно заметить, что сначала я приял N=100 и ответа найдено не было. Похоже, что числа b и с значительно больше ста. Но и при N=1000 прога ничего не выдала. И только при N=10000 появился нужный ответ, что в таблице иллюстрации. Но поскольку комп у меня один из самых быстрых на сегодняшнее время, то время счета - не более секунды. На слабых компах требуется не менее 20 секунд. Но впереди квантовые машины и уже число циклов большого значения играть не будут. Сама прога столь проста, что для набивки потребуется мизер времени:

N=10000
print "  a     b    c     p "
print "----------------------"
a=89
for b=a+1 to N
for c= b+1 to N
if a^2+b^2=c^2 then
if c/2<>int(c/2) then
p=a+b+c
print a using "###",b using "#####";
print c using "#####",p using "#####"
fi:fi
next c
next b

В примитивной тройке гипотенуза "c" - всегда нечетна.


17 октября 2023 г.


Рецензии