A "Pythagorean Plus One" triple can be defined as any three distinct integers a, b, c, such all three of these are one more than a perfect square, and also a times b equals c.
What is the lowest value of c possible?
The three smallest c's are 10 (2,5,10), 50 (5,10,50) and 170 (10,17,170)
Visual Basic program used (with apologies to Charlie for my Dim-wittedness):
Imports System
Imports System.Runtime.InteropServices
Imports System.Math
Module Module1
Sub Main()
Randomize()
Dim intIntervalCount As Integer
Dim dblIntervalTotal As Double
Console.WriteLine("Starting program execution at " & _
TimeOfDay)
intIntervalCount = 0
dblIntervalTotal = 0
For IndexC As Integer = 1 To 999
For IndexA As Integer = 1 To 999
If IndexA <> IndexC Then
For IndexB As Integer = 1 To 999
If IndexB <> IndexA And IndexB <> IndexC Then
DoTheMath(IndexA, IndexB, IndexC, _
intIntervalCount, dblIntervalTotal)
End If
Next
End If
Next
Next
Console.WriteLine(" ")
Console.WriteLine("Ending program execution at " & _
TimeOfDay)
Console.WriteLine(" ")
Console.WriteLine("Please press ENTER to exit program...")
Console.ReadLine()
End Sub
Sub DoTheMath(ByVal IndexA, ByVal IndexB, ByVal IndexC, _
ByRef intIntervalCount, ByRef dblIntervalTotal)
Dim dblWorkareaC As Double
Dim dblWorkareaA As Double
Dim dblWorkareaB As Double
Dim strContinueFlag As String
intIntervalCount += 1
dblIntervalTotal += 1
If intIntervalCount >= 99999 Then
intIntervalCount = 0
Console.WriteLine("We are now on processing cycle " & _
Str(dblIntervalTotal))
End If
dblWorkareaC = (IndexC ^ 2) + 1
dblWorkareaA = (IndexA ^ 2) + 1
dblWorkareaB = (IndexB ^ 2) + 1
If dblWorkareaC <> dblWorkareaA * dblWorkareaB Then
Exit Sub
End If
Console.WriteLine("Hi Pythagoras !!")
Console.WriteLine(" ")
Console.WriteLine(Str(dblWorkareaA) & " " & _
Str(dblWorkareaB) & " " & _
Str(dblWorkareaC))
Console.WriteLine(" ")
strContinueFlag = "?"
While (strContinueFlag <> "Y" And strContinueFlag <> "N")
Console.WriteLine("Do you wish to continue ? (Y/N)")
strContinueFlag = UCase(Console.ReadLine())
End While
If strContinueFlag = "N" Then
End
End If
End Sub
End Module
|
Posted by Penny
on 2004-05-17 09:11:09 |