Crear 1 FOR
FOR1: rango [0, 5] paso 1
Dentro del FOR1, mostrar valor actual del contador, calcule y muestre el cuadrado del contadorCrear 1 solo bucle usando FOR
FOR1: rango [0, 5] paso 1
Dentro del FOR1, mostrar valor actual y si el CONTADOR no es par (impar), salte a la siguiente iteración,
de lo contrario calcule y muestre el cuadrado del contador,
use un indicador, flag o bandera para determinar si es par o imparCrear 1 FOR
FOR1: rango [0, 5] paso 1
Dentro del FOR1, mostrar valor actual y si el CONTADOR no es par (impar)
termine el ciclo o rutina de repetición
de lo contrario calcule y muestre el cuadrado del contadorCrear 3 FORes
FOR1: rango [0, 5] paso 1
FOR2: rango [4, 7] paso 1
FOR3: rango [8, 11] paso 1
anidar FOR 2 dentro FOR1
anidar FOR3 dentro FOR2
debe estar FOR3 dentro de FOR2 dentro de FOR1
Dentro del FOR1, mostrar valor actual del contador y si el contador del FOR1 supera el valor de 3 abandonar todos los ciclos internos a FOR1
Dentro del FOR2, mostrar valor actual del contador y si el contador del FOR anterior (FOR1) es par, terminar ciclo ACTUAL e INTERNOS (FOR2)
Dentro del FOR3, mostrar valor actual del contador y si el contador del FOR anterior (FOR2) es impar, terminar ciclo ACTUALel código anterior es muy trivial, solo es una demostración del uso de CONTINUE, se podria haber reemplazado por un else
... directamente haber cambiado la condición del ifGracias KILLERJC por el aporte, agregado en el ejemplo#2
El continue y el break funcionan de la misma forma que en C
PASOS
1: declarar un objeto tipo LISTA, ya que este objeto en JAVA es de tipo dinámico el cual podrá almacenar miles de números solo con la limitante de su memoria RAM
cálculos aproximados, si me equivoco me corrigen por favor
Si al correr el programa se tiene 1 GiBytes libre en RAM y como un GiBytes equivale a
2^30 bytes = 1024 mebibyte (MiG) = 1073741824 bytes
y como cada elemento de la lista es un LONG de 8 Bytes,
podemos almacenar 1073741824 bytes / 8 bytes = 134,217,728 ~ 134 mil números primos y cada uno entre [0, ..., 2^(8*8-1)-1= 9,223,372,036,854,775,807] que es el limite de LONG para números enteros positivos en java
pero si almacenamos la salida en un archivo es decir cada primo encontrado lo escribimos en un archivo texto podemos colocar millones de #s primos, solo nos limitaría la capacidad de nuestro disco duro
Si tenemos libre un 1 tebibyte osea 2^40 bytes = 1 099 511 627 776 en nuestro disco duro
y como LONG maneja hasta 19 dígitos + un espacio = 20 caracteres y so almacenados cada dígito en ASCCI de 8 bytes cada impresión podría ocupar hasta 8*20 = 160 bytes,
con este razonamiento entonces podemos almacenar aproximadamente
1099511627776 / 160 = 6,871,947,673.6 impresiones ~
6.8 mil millones de números primos pero es mas realmente, por que no todos los primes inician en 19 dígitos
2: adherir el 2 y 3 como los dos primeros primos,, ya que algoritmo cola el primer primo a partir de 5
3: desplegar en pantalla los dos primeros #s primos
4: declarar variables de cada expresión del algoritmo para facilitar la depuración
(N, contador primer bucle)
(K, contador segundo bucle)
(maxK, limite segundo bucle)
(J, contador primo)
...
5: iniciar un bucle en pasos de 1 y entre N=1 hasta N<=100 ó 1000 o el que desee
6: evaluar la expresión X=6*N-1
...
total primos rango de búsqueda hasta
0 10^0=0
4 10^1=10
25 10^2=100
168 10^3=1,000
1,229 10^4=10,000
9,592 10^5=10,0000
78,498 10^6=1millon
664,579 10^7=10millones
5,761,455 10^8=100millones
50,847,534 10^9=1000millones
455,052,511 10^10=10,000millones
4,118,054,813 10^11=100,000millones
37,607,912,018 10^12=1billon
346,065,536,839 10^13=10billones
3,204,941,750,802 10^14=100billones
29,844,570,422,669 10^15=1000billones
279,238,341,033,925 10^16=10,000billones
2,623,557,157,654,233 10^17=100,000billones
24,739,954,287,740,860 10^18=1trillon
234,057,667,276,344,607 10^19=10trillones 234,057,667,276,344,607 10^20=100trillones
for f = 1
for i = 1
for k = 0 =[continue to inner, break loop k]
for i = 2 =[continue next iteration]
for i = 3 =[continue next iteration]
for i = 4 =[continue to outer, break loop i]
for f = 2
for i = 5 =[break loop i]
for f = 3
for i = 6
for k = 1, 2 =[continue to inner, break loop k]
for i = 7
for k = 3, bucle i sin salto i=7
for i = 8 =[break outer, break loop i]
for f = 4
for i = 9 break outer, break all loops i, f
fin