Помогите,пожалуйста, решить при
помощи VB задачу Диофанта (lll век до н.э.).
"Найти таких три числа, сумма которых, а также
сумма каждой пары этих чисел была бы квадратом
другого числа".
Заранее благодарю

Option Explicit
Sub Main()
Dim i As Long, j As Long, k As Long
For i = 1 To 10000
For j = 1 To i
For k = 1 To j
If (Sqr(i) = Int(Sqr(i))) And _
(Sqr(j) = Int(Sqr(j))) And _
(Sqr(k) = Int(Sqr(k))) And _
(Sqr(i + j) = Int(Sqr(i + j))) And _
(Sqr(j + k) = Int(Sqr(j + k))) And _
(Sqr(i + k) = Int(Sqr(i + k))) Then _
MsgBox i & vbTab & j & vbTab & k
Next: Next: Next
End Sub
tyomitch писал(а):
- Код: Выделить всё
Option Explicit
Sub Main()
Dim i As Long, j As Long, k As Long
For i = 1 To 10000
For j = 1 To i
For k = 1 To j
If (Sqr(i) = Int(Sqr(i))) And _
(Sqr(j) = Int(Sqr(j))) And _
(Sqr(k) = Int(Sqr(k))) And _
(Sqr(i + j) = Int(Sqr(i + j))) And _
(Sqr(j + k) = Int(Sqr(j + k))) And _
(Sqr(i + k) = Int(Sqr(i + k))) Then _
MsgBox i & vbTab & j & vbTab & k
Next: Next: Next
End Sub
Daz писал(а):А у тебя какие числа получились ?
Option Explicit
Sub Main()
Dim i As Long, j As Long, k As Long
Dim i2 As Long, j2 As Long, k2 As Long
For i = 1 To 10000: i2 = i * i
For j = 1 To i: j2 = j * j
For k = 1 To j: k2 = k * k
If (Sqr(i2 + j2) = Int(Sqr(i2 + j2))) And _
(Sqr(j2 + k2) = Int(Sqr(j2 + k2))) And _
(Sqr(i2 + k2) = Int(Sqr(i2 + k2))) Then _
MsgBox i2 & vbTab & j2 & vbTab & k2
Next: Next: Next
End Sub
57600, 13689, 1936
75625, 63504, 57600
230400, 54756, 7744
302500, 254016, 230400
480249, 230400, 19600
518400, 17424, 7225
518400, 123201, 17424
627264, 53361, 25600
680625, 571536, 518400
921600, 219024, 30976
1210000, 1016064, 921600
1334025, 1210000, 1016064
1440000, 342225, 48400
1890625, 1587600, 1440000
1920996, 921600, 78400
2073600, 69696, 28900
2073600, 492804, 69696
2509056, 213444, 102400
2722500, 2286144, 2073600
2822400, 670761, 94864
tyomitch писал(а):Daz писал(а):А у тебя какие числа получились ?
, тоесть нужен алгоритм решения системы:Daz писал(а):"Найти таких три числа, сумма которых, а также сумма каждой пары этих чисел была бы квадратом другого числа".
a + b + c = d^2
a + b = d^2
a + c = d^2
b + c = d^2
Daz писал(а):Tyomitch, большое спасибо за участие, но ты
не учел первое условие:
"Найти таких три числа, сумма которых, а также
сумма каждой пары этих чисел была бы квадратом
другого числа".
Option Explicit
Sub Main()
Dim i As Long, j As Long, k As Long
For i = 1 To 10000
For j = 1 To i
For k = 1 To j
If (Sqr(i + j) = Int(Sqr(i + j))) And _
(Sqr(j + k) = Int(Sqr(j + k))) And _
(Sqr(i + k) = Int(Sqr(i + k))) And _
(Sqr(i + j + k) = Int(Sqr(i + j + k))) Then _
MsgBox i & vbTab & j & vbTab & k
Next: Next: Next
End Sub
Daz писал(а):Диофант утверждает, что задача имеет одно единственное решение.
32 32 17
128 128 68
217 72 72
273 168 88
288 288 153
320 80 41
329 200 200
512 512 272
560 464 65
640 585 144
672 112 57
744 345 280
800 800 425
825 264 136
833 128 128
840 456 385
868 288 288
880 801 720
SHURUP писал(а):а то я совсем про другую задачу Диофанта слышал, а про эту впервые
32 32 17
128 128 68
217 72 72
273 168 88 Подходит, цифры разные
288 288 153
320 80 41 Вариант Диофанта
329 200 200
512 512 272
Mikle писал(а):Если нужны разные числа - 0, 3, 4.
Подходит один программист к другому, говорит: "Вася, мне генератор случайных чисел нужен!" Тот ему отвечает, не отрываясь от монитора: "Пятнадцать."
Сейчас этот форум просматривают: Yandex-бот и гости: 3