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 |
||
⚫ | |||
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 |
||
⚫ | |||
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 ) ) |
||
⚫ | |||
/* 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" ) |
||
⚫ | |||
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 = |
Time = 9.9078 segs |
||
/* Sí, mi lenguaje es lento para algunas cosas... */ |
/* Sí, mi lenguaje es lento para algunas cosas... */ |