The sieve of Sundaram: Difference between revisions

Content added Content deleted
No edit summary
Line 147: Line 147:
=={{header|Amazing Hopper}}==
=={{header|Amazing Hopper}}==
{{trans|C}}
{{trans|C}}

<syntaxhighlight lang="Amazing Hopper">
<syntaxhighlight lang="Amazing Hopper">
#include <jambo.h>
#include <jambo.h>
Line 153: Line 154:
Set break
Set break
tiempo inicio = 0, tiempo final = 0
tiempo inicio = 0, tiempo final = 0
Tic( tiempo inicio )
nprimes=1000000, nmax=0
nprimes=1000000, nmax=0
Line 168: Line 168:
sumando = 0, factor = 0
sumando = 0, factor = 0
end subloop=0
end subloop=0

Tic( tiempo inicio )
Loop
Loop
/* calculo las secuencias para las posiciones;
/* calculo las secuencias para las posiciones; ocupa la memoria creada para la primera secuencia,
si lo hago con ciclos, el loop termina dentro de 6 minutos :D */
es mucho, pero si lo hago con ciclos, el loop termina dentro de 6 minutos :D */
Let ( end subloop := {k} Minus 'i', {i} Mul by '2' Plus '1', Div it )
Let ( end subloop := {k} Minus 'i', {i} Mul by '2' Plus '1', Div it )
Sequence( pos inicial sumando, 1, end subloop, sumando )
Sequence( pos inicial sumando, 1, end subloop, sumando )
Line 189: Line 190:
++i
++i
While ( Less equal ( Mul( Mul( Plus one (i),i ),2), k ) )
While ( Less equal ( Mul( Mul( Plus one (i),i ),2), k ) )
Toc( tiempo inicio, tiempo final )


/* Visualización de los primeros 100 primos */
/* Visualización de los primeros 100 primos. Esto podría hacerlo con ciclos,
como lo hace la versión de "C", pero me gusta disparar moscas con un rifle */
Cls
Cls
ta=0, Compact 'a', Move to 'a' // elimino los ceros = compacto array
ta=0, Compact 'a', Move to 'a' // elimino los ceros = compacto array
Line 199: Line 202:
/* imprimo el primo número "nprimes" */
/* imprimo el primo número "nprimes" */
Print( nprimes, " th Sundaram prime is ", [ nprimes ] Get 'a', "\n" )
Print( nprimes, " th Sundaram prime is ", [ nprimes ] Get 'a', "\n" )
Toc( tiempo inicio, tiempo final )
Printnl( "Time = ", tiempo final, " segs" )
Printnl( "Time = ", tiempo final, " segs" )
End
End
Line 216: Line 218:
479 487 491 499 503 509 521 523 541 547
479 487 491 499 503 509 521 523 541 547
1000000 th Sundaram prime is 15485867
1000000 th Sundaram prime is 15485867
Time = 11.0265 segs
Time = 9.9078 segs


/* Sí, mi lenguaje es lento para algunas cosas... */
/* Sí, mi lenguaje es lento para algunas cosas... */