37 lines
961 B
Text
37 lines
961 B
Text
include "NSLog.incl"
|
|
|
|
begin globals
|
|
long total = 0
|
|
long prim = 0
|
|
long maxPeri = 0
|
|
end globals
|
|
|
|
void local fn newTri( s0 as long, s1 as long, s2 as long )
|
|
long p = s0 + s1 + s2
|
|
if ( p <= maxPeri )
|
|
prim++
|
|
total += maxPeri / p
|
|
fn newTri( s0 - 2 * s1 + 2 * s2, 2 * s0 - s1 + 2 * s2, 2 * s0 - 2 * s1 + 3 * s2 )
|
|
fn newTri( s0 + 2 * s1 + 2 * s2, 2 * s0 + s1 + 2 * s2, 2 * s0 + 2 * s1 + 3 * s2 )
|
|
fn newTri( -s0 + 2 * s1 + 2 * s2, -2 * s0 + s1 + 2 * s2, -2 * s0 + 2 * s1 + 3 * s2 )
|
|
end if
|
|
end fn
|
|
|
|
void local fn DoIt
|
|
int i = 2
|
|
maxPeri = 100
|
|
while ( maxPeri <= 10000000000 )
|
|
prim = 0
|
|
total = 0
|
|
fn newTri( 3, 4, 5 )
|
|
NSLog( @"M^%2d %12ld %12ld %-11ld", i, maxPeri, total, prim ) : i++
|
|
maxPeri *= 10
|
|
wend
|
|
end fn
|
|
|
|
NSLog( @"below triples primitive" )
|
|
CFTimeInterval t : t = fn CACurrentMediaTime
|
|
fn DoIt
|
|
NsLog( @"\nCompute time: %.3f ms", (fn CACurrentMediaTime-t)*1000 )
|
|
|
|
HandleEvents
|