diophantinePrimesGradient.frink

Download or view diophantinePrimesGradient.frink in plain text format


/** This tries to do a gradient search to find a prime number solution of the
    equation found in diophantinePrimes.frink .
*/

use diophantinePrimes.frink

var prime
var largest = -10^1000.
var vbest
var p

initialize[] :=
{
   array = new array[26]
   for i = 0 to 25
      array@i = floor[abs[random[10000,30000]]]
   return array
}

arr = initialize[]
do
{
   max = -1.0e1000

   idx = random[0, 25]
   val = arr@idx
   
   for v = max[val-1, 0] to val+1
   {
      arr@idx = v
      p = prime[arr]
      // println[char[char["a"] + idx] + "=$v, p=$p"]
      if p > max
      {
 vbest = v
 max = p
      }
   }

   arr@idx = vbest
   prime = max

   
   //println["prime = $prime\n"]
   if prime > largest
   {
      largest = prime
      println["largest is $largest"]
      for i = 0 to 25
      {
         println[char[char["a"] + i] + " = " + arr@i]
      }
   }

} until prime > 0

println[prime]
if isPrime[prime]
   println["Verified."]
else
{
   println["ERROR: "]
   println[factor[prime]]
}


Download or view diophantinePrimesGradient.frink in plain text format


This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen, eliasen@mindspring.com