Programa de encriptación simétrica con el método matricial hecho en Java

agosto 4, 2010 a las 10:03 pm | Publicado en Java, Programacion | 3 comentarios
Etiquetas: , , ,

Este es un programa que hicimos en la universidad. Está hecho en un applet de Java en Netbeans. Primero les explico cómo funciona este método de encriptación y desencriptación y luego el funcionamiento del programa.

El método de encriptación simétrica se llama así porque usa la misma clave para encriptar y desencriptar. La clave es un valor numérico.

Para entender cómo funciona vamos a usar un ejemplo.

El mensaje a encriptar será: HOLA MUNDO ES UNA FRASE COMUN y la clave va a ser 4.

Lo que hacemos es agrupar el texto en número de caracteres según la clave y formar una matriz. Así con esa frase y esa clave nos quedaría:

H   O   L   A
_   M  U  N
D   O   _   E
S   _   U   N
A   _   F    R
A   S   E    _
C   O   M   U
N  _    _    _

Para el ejemplo reemplacé los espacios con guiones bajos. Viendo esa frase en una línea sería:

HOLA | _MUN |DO_E | S_UN |A_FR | ASE_ | COMU | N_ _ _ |

Al último puse 3 guiones bajos para completar los 4 caracteres finales. Para encriptar la frase viendo la matriz vamos cogiendo los caracteres de la primera columna, luego de la segunda, etc, la frase nos queda:

H_DSAACN  -> Primera columna
OMO__SO_  -> Segunda columna
LU_UFEM_ -> Tercera columna
ANENR_U_ -> Cuarta columna

La frase encriptada completa nos queda:

H_DSAACNOMO__SO_LU_UFEM_ANENR_U_

Tomando en cuenta que los guiones bajos son en realidad espacios.

Ahora analizando el número de caracteres tenemos que la frase original tiene 29 caracteres incluyendo los espacios, mientras que la frase encriptada tiene 31 caracteres (no se toma en cuenta el último espacio).

Este dato necesitamos para el proceso de desencriptación. Para eso se parte de la frase encriptada y se divide el número de caracteres para la clave. Si el residuo es cero, la respuesta de la división es el número de filas de la matriz, si no es cero el número de filas de la matriz es la respuesta d ela división más uno.

Si dividimos 31 para 4 la respuesta es 7 con residuo 3, como no es exacta entonces el número de filas será 7 + 1 = 8. Quiere decir que debemos agrupar la frase encriptada en grupo de 8 caracteres así:

H_DSAACNOMO__SO_LU_UFEM_ANENR_U    -> Frase encriptada

H_DSAACN | OMO__SO_ | LU_UFEM_ | ANENR_U

Para formar la matriz cada grupo de caracteres es una columna de la matriz, nos queda por tanto:

H   O    L   A
_   M   U   N
D   O    _   E
S    _    U   N
A   _    F    R
A   S    E    _
C    O   M   U
N   _   _

Nuevamente volvemos a la matriz original y ya es cuestión de leer las filas en orden y se obtiene el mensaje desencriptado.

Esto es lo que haremos en el programa hecho en Java.

Lo pueden descargar del siguiente enlace: http://www.mygnet.net/codigos/java/criptografia/encriptacion_simetrica_con_metodo_matricial.3224

Aplicación sencilla de Corba usando Java

febrero 28, 2009 a las 1:43 pm | Publicado en Programacion | 9 comentarios
Etiquetas: , , , , ,

Vamos a realizar una aplicación bastante sencilla de Corba.

La aplicación contendrá un archivo IDL, un archivo de servidor y uno de cliente.

El programa lo que hará es ir contando el número de veces que un cliente accede al servidor, cuenta hasta 5 clientes y luego empieza en forma inversa.

Para poder realizar y ejecutar este programa necesitaremos un editor de texto (Bloc de notas está bien) y el JDK de Java, que lo puedes descargar de http://www.java.com/es/

Compilación del programa

Primero vamos a descargarnos el programa que contiene el código del IDL:

Descargar archivo PDF con el código del IDL

Debemos copiar el contenido desde ese archivo y pegarlo en un Bloc de Notas, y guardamos el archivo con el nombre de count.idl.

Ahora vamos a descargarnos el programa que contiene el código Java del Cliente:

Descargar archivo PDF con el código del Cliente

Copiamos el contenido de ese archivo y lo pegamos en el Bloc de Notas, y guardamos el archivo con el nombre de CountClient.java.

Y finalmente nos descargamos el programa que contiene el código Java del Servidor:

Descargar archivo PDF con el código del Servidor

Copiamos el contenido de ese archivo y lo pegamos en un Bloc de Notas, y guardamos el archivo con el nombre de CountServer.java.

Una vez creados los tres archivos debemos compilarlos. Pero para eso debemos ubicar los 3 ficheros en la carpeta que contiene del JDK de Java, por lo general la ruta es:

C:\Archivos de programa\Java

Yo tengo el JDK 1.6.0_07 y dentro de esa ruta encontramos la carpeta llamada Bin, ahí pegamos los tres archivos. Es decir, en mi caso, la ruta final sería:

C:\Archivos de programa\Java\jdk1.6.0_07\bin

Una vez ahí los vamos a compilar. Abrimos un «Símbolo del sistema y nos ubicamos en esa ruta. Basta con pegar en el Símbolo del sistema lo siguiente (en mi caso):

cd C:\Archivos de programa\Java\jdk1.6.0_07\bin

La ruta mostrará lo siguiente:

C:\Archivos de programa\Java\jdk1.6.0_07\bin>

A esta última ruta la vamos a abreviar con el símbolo de dólar $.

Compilaremos primero el archivo IDL, luego el servidor y luego el cliente; usando los siguientes códigos, respectivamente:

$idlj -fall count.idl

$javac CountClient.java

$javac CountServer.java

Si sale el siguiente mensaje:

Note: .\Counter\CountPOA.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Significa que hay que volver a compilar el archivo.

Para entender mejor lo mostraremos en el siguiente gráfico:

Compilar los archivos desde Símbolo del Sistema

Compilar los archivos desde Símbolo del Sistema

Al compilar el archivo IDL se creará una carpeta llamada Counter, que contendrá ciertos archivos auxiliares.  Al compilar los archivos Java se crean unos archivos Class.

Ejecución del programa

Para ejecutar el programa necesitamos tener abiertas tres ventanas del Símbolo del sistema. La primera iniciará el puerto, la segunda ejecutará el servidor y la tercera el cliente. El código para ejecutarla es, respectivamente:

$tnameserv -ORBInitialPort 2000

$java CountServer -ORBInitialHost localhost -ORBInitialPort 2000

$java CountClient -ORBInitialHost localhost -ORBInitialPort 2000

Se deben ejecutar cada uno en diferente ventana del Símbolo del sistema y en ese orden.

Espero que les sirva el programa. Es muy simple pero ayuda a entender el funcionamiento de Corba.

Programa sobre SLA y manejo de ping usando PHP

febrero 8, 2009 a las 3:41 pm | Publicado en Programacion | 1 comentario
Etiquetas: , , , , , , ,

SLA – Acuerdos de Niveles de Servicio

El presente programa permite realizar reportes sobre los SLA usando el lenguaje de programación PHP.

Los SLA es un documento que describe los objetivos de desempeño y disponibilidad de un servicio o producto. Proporciona una mayor visibilidad y conocimiento de los servicios, además define los alcances, limitaciones y responsabilidades tanto del cliente como del proveedor.

Para entender el programa vamos a definir ciertos términos importantes:

  • Disponibilidad (D)

Se entiende como disponibilidad al tiempo medido en horas que todos los canales están en servicio.
La disponibilidad será medida mensualmente, considerando los valores de todos los enlaces en forma agregada. Según el resultado de ésta se realizará el cálculo del Factor de Calidad de Servicio (FCS) con el que se definirá el Valor Mensual a Pagar (VMP) .

La Disponibilidad considera valores mínimos de servicio dependiendo de los lugares y tecnologías utilizadas.

La fórmula de la Disponibilidad es:

Fórmula de la disponibilidad

Fórmula de la disponibilidad

Donde:

TD = Tiempo disponible del servicio en horas durante el mes
TT = Tiempo total en horas del mes
TM = Tiempo de mantenimiento en que el enlace estuvo fuera de servicio

  • Factor de Calidad de Servicio (FCS)

Es un factor determinado por la disponibilidad de todos los enlaces durante un mes, el cual afecta al Valor de Servicio Mensual (VSM).
El Valor Mensual a Pagar (VMP) por parte del cliente se calcula por la siguiente fórmula:

Fórmula del Valor Mensual a Pagar (VMP)

Fórmula del Valor Mensual a Pagar (VMP)

Las fórmulas para hallar el Factor de Calidad de Servicio son las siguientes:

Si el valor de la disponibilidad va desde [100%   hasta   99.5%] la fórmula es:

Fórmula 1 del FCS

Fórmula 1 del FCS

Si el valor de la Disponibilidad  va desde ]99.5%   hasta   80%] la fórmula es la siguiente:

Fórmula 2 del FCS

Fórmula 2 del FCS

Si el valor de la disponibilidad está entre ]80%   hasta   0%] el FCS es cero.

  • Retardos

Se medirá utilizando el comando ping; según el tipo de enlace los tiempos promedios de este comando en un canal sin carga de 512 bytes y 1000 ping de prueba deberán ser los siguientes:

  • Si el enlace es urbano: menor a 80 ms.
  • Si el enlace es interurbano: menor 1000 ms enlaces satelitales y menor a 100 ms enlaces terrestres
  • Si el enlace es internacional: menor a 1000 ms enlace satelital y menor a 280 ms enlace terrestre.

En base a estos antecedentes vamos a ver el funcionamiento del programa hecho en PHP. Y luego daremos la dirección de donde podrá descargarse la aplicación.

PROGRAMA PING

La pantalla inicial es la siguiente:

Pantalla inicial del Programa Ping

Pantalla inicial del Programa Ping

Ahí podemos ingresar la dirección IP o el dominio al que queremos hacer ping. Y establecemos el número de veces que se realizará el Ping. Para la prueba vamos a hacer ping al dominio http://www.softonic.com y 5 pings de prueba. Y obtenemos los siguientes resultados:

Resultado del ping a www.softonic.com

Resultado del ping a http://www.softonic.com

El botón guardar nos permite almacenar la información en la Base de Datos de MySql llamada Ping, como se muestra en el siguiente gráfico:

Base de datos Ping

Base de datos Ping

De la misma manera en que se ingresó la información a la base de datos, se puede obtener reportes desde ella:

Reporte Ping

Reporte Ping

Y los resultados obtenidos serían los siguientes:

Resultado Ping desde la Base de Datos

Resultado Ping desde la Base de Datos

El programa tiene ciertas validaciones en el ingreso de datos.

PROGRAMA SLA

El programa muestra la siguiente pantalla inicial:

Programa SLA

Programa SLA

Debemos ingresar el mes y el año del cual vamos a hacer el reporte y el número de enlaces. EL programa automáticamente calculará ciertos valores y especificará si el año es bisiesto o no. Para la prueba haremos del mes de Junio de 2008 con dos enlaces. La pantalla con los datos es la siguiente:

Ingreso de datos para al SLA

Ingreso de datos para al SLA

Al procesar esta información obtendremos los siguientes resultados:

Resultados del SLA

Resultados del SLA

El programa nos dice cuánto pagaremos por el servicio recibido según las fórmulas que se mencionaron anteriormente.

De la misma manera que el programa anterior, se puede almacenar la información en la Base de datos llamada Disponibilidad:

Base de datos Disponibilidad

Base de datos Disponibilidad

Ahora vamos a ver un reporte de esta información. Lo hacemos a través del siguiente formulario:

Formulario para Reportes del SLA

Formulario para Reportes del SLA

Establecidos los datos damos clic en procesar y obtenemos los resultados.

Ver gráfica de barras como las de Excel usando PHP

Los resultados que se muestran son los siguientes:

Reporte de los resultados del SLA

Reporte de los resultados del SLA

Además muestra los resultados en forma detallada.

DESCARGA DEL PROGRAMA

El programa puede ser descargado de la siguiente dirección:

http://www.mygnet.net/codigos/php/calculoyconversiones/programa_sobre_sla_y_manejo_de_ping_usando_php_y_mysql.2908

Descarga de las bases de datos

El archivo que se descargan contiene dos archivos de texto donde se encuentra el código SQL de la base de datos.

De todos modos se pueden descargar de los siguientes enlaces.

Base de datos «Disponibilidad«: clic aqui.

Base de datos «Ping«: clic aqui

Ambos archivos contienen el código de las tablas y algunos registros de las bases de datos, pero NO contienen el código para crear la base. Por lo tanto primero crean las bases de datos, una llamada Disponibilidad y la otra llamada Ping y dentro de esas bases ejecutan el código SQL que tiene los archivos.

Números primos, números perfectos y números pares usando PHP

enero 22, 2009 a las 3:54 pm | Publicado en Programacion | 5 comentarios
Etiquetas: , , , , , ,

En este ejercicio vamos a realizar lo siguiente.

Mediante un formulario vamos a ingresar un número cualquiera. Luego al procesar esta información vamos a obtener en una tabla una lista de números desde el número ingresado hasta el uno. Y de cada número de la lista nos va a indicar si el número es par o impar, si es perfecto o no lo es y si es primo o no.

El resultado será como el de la imagen que se muestra a continuación:

Resultado del programa

Resultado del programa

Ahora que tenemos una idea de lo que hará el programa vayamos al grano.

Primero vamos a crear los archivos PHP que contienen las funciones de paridad, número perfecto y número primo.

Vamos a crear la función que nos permitirá saber si el número es par o impar. Para lo que creamos el archivo func_paridad.php que contendrá el siguiente código:

<?php
function paridad($num) {
if ($num %2 == 0) {
return true;
}
else {
return false;
}
}
?>

Ahora vamos a crear el archivo que nos dirá si un número es primo o no. Para lo que creamos el archivo funcion_primo.php que contendrá el siguiente código:

<?php
function primo($num){
$cont = 0;
for($i = 1; $i <= $num; $i++){
//echo 3/2.»<br>»;

if($num % $i == 0){
//echo «$i <br>»;
$cont++;
}
}

if($cont==2){
return true;
}
else{
return false;
}
}
?>

Finalmente creamos el archivo func_perfecto.php que nos permitirá conocer si un número es perfecto o no mediante el siguiente código:

<?php

function perfecto($num){
for ($i=$num-1; $i>= 1; $i–){
if($num%$i==0){
$vec += $i;
}
}

if($vec == $num){
return true;
}
else{
return false;
}
}
?>

La función de paridad es muy simple para explicarla. Solo bastaría decir que el símbolo de porcentaje % nos da el valor del residuo de una división entre dos números.

La función del número primo fue explicado en «Números primos usando PHP».

La función para obtener el número perfecto utiliza un algoritmo bastante sencillo. Mediante un bucle usando el for estamos recorriendo los números que van desde el número que recibe la variable $num restado uno hasta el número uno.  Le restamos 1 a la variable $num por la definición de número perfecto:

Número perfecto es aquel que sumados sus divisores incluyendo el uno y excluyendo el número, es igual a si mismo.

Ahora estamos usando un acumulador para almacenar los divisores del número ingresado en la variable $vec. Finalmente hay que comparar, y si el número ingresado es igual al valor del acumulador entonces es un número perfecto.

Una vez que tenemos las tres funciones necesarias vamos a crear el formulario donde ingresaremos el  número. Para eso creamos el archivo formulario.html y dentro de la etiqueta <body> insertamos el siguiente código:

<form id=»form1″ name=»form1″ method=»post» action=»todititito.php«>
<table width=»355″ border=»0″>
<tr>
<td width=»183″>Ingrese Numero:</td>
<td width=»162″><label>
<input type=»text» name=»num» id=»num» />
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan=»2″><label>
<div align=»center»>
<input type=»submit» name=»enviar» id=»enviar» value=»Enviar» />
</div>
</label></td>
</tr>
</table>
</form>

Como vemos dentro del action, este formulario va a llamar al archivo toditito.php este archivo contendrá el siguiente código:

<html>
<head>
<title>N&uacute;meros perfectos, pares y primos</title>
<style type=»text/css»>
<!–
.Estilo1 {
font-size: 24px;
font-weight: bold;
}
–>
</style>
</head>
<body>
<center>
<p class=»Estilo1″>N&Uacute;MEROS PRIMOS, PARES Y PERFECTOS</p>
<p>
<?php

//Llamamos a los archivos que contienen las funciones
include(«funcion_primo.php»);
include(«func_perfecto.php»);
include(«func_paridad.php»);

//Obtenemos en una variable el número ingresado en el formulario
$num_analiza = $_POST[«num»];

echo ‘<table border=»1″ width=»460″>’;
for($i = $num_analiza; $i >= 1; $i–){

//Almacenamos en un vector las operaciones que realiza cada función con los números del for
$resp_primo[$i] = primo($i);
$resp_perf[$i] = perfecto($i);
$resp_par[$i] = paridad($i);

echo ‘<tr>’;

//Verificamos si el número ingresado es primo o no
if ($resp_primo[$i] == true) {
echo ‘<td bgcolor=»#00CC99″><div align=»center»>’.$i.’ es primo </div></td>’;

//Contamos cuántos números primos hay en la lista
$cont_primo++;
}
else {
echo ‘<td><div align=»center»>’.$i.’ no es primo </div></td>’;
}

//Verificamos si el número ingresado es perfecto o no
if ($resp_perf[$i] == true) {
echo ‘<td bgcolor=»#FFFF66″><div align=»center»>’.$i.’ es perfecto </div></td>’;

//Contamos cuántos números perfectos hay en la lista
$cont_perf++;
}
else {
echo ‘<td><div align=»center»>’.$i.’ no es perfecto </div></td>’;
}

//Verificamos si el número ingresado es par o no
if ($resp_par[$i] == true) {
echo ‘<td bgcolor=»#FF9900″><div align=»center»>’.$i.’ es par </div></td>’;

//Contamos cuántos números pares hay en la lista
$cont_par++;
}
else {
echo ‘<td><div align=»center»>’.$i.’ no es par </div></td>’;
}

echo ‘</tr>’;
}
echo ‘</table>’;

//Desplegamos el valor de los contadores
echo ‘<br><br>’;
if ($cont_primo == 0) {
echo «No existen numeros primos en la lista»;
}
else {
echo «Existen $cont_primo numeros primos en la lista»;
}
echo ‘<br>’;
if ($cont_perf == 0) {
echo «No existen numeros perfectos en la lista»;
}
else {
echo «Existen $cont_perf numeros perfectos en la lista»;
}
echo ‘<br>’;
if ($cont_par == 0) {
echo «No existen numeros pares en la lista»;
}
else {
echo «Existen $cont_par numeros pares en la lista»;
}
?>
</p>
</center>
</body>
</html>

Luego podemos probar el programa usando el WAMP o el XAMPP.

Números primos usando PHP

enero 20, 2009 a las 10:42 pm | Publicado en Programacion | 4 comentarios
Etiquetas: , , ,

Este tutorial mostrará el manejo de números primos utilizando PHP.

El primer ejercicio consiste en lo siguiente. Se ingresará un número en un formulario web, y se lo procesa para indicarnos si el número ingresado es primo o no. Es un programa muy sencillo pero muy útil.

1.- Creamos un formulario web con Dreamweaver o cualquier otro editor HTML. Y tenemos algo como esto:

El nombre del campo de texto será: numero_primo. En el action del Form llamamos al archivo procesa_primo.php que lo crearemos más adelante.
El código HTML del formulario sería el siguiente:

<form id=»form1″ name=»form1″ method=»post» action=»procesa_primo.php»>
<table width=»460″ border=»0″>
<tr>
<td colspan=»2″><div align=»center»><strong>Ingreso número</strong></div></td>
</tr>
<tr>
<td><strong>Ingrese un número:</strong></td>
<td><label>
<input type=»text» name=»numero_primo» id=»numero_primo» />
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan=»2″><div align=»center»>
<label>
<input type=»submit» name=»ok» id=»ok» value=»Ok» />
</label>
</div></td>
</tr>
</table>
<label></label>
</form>

2.- Antes de crear el archivo procesa_primo.php vamos a crear otro archivo php. A este lo vamos a llamar funcion_primo.php
Este archivo contendrá una función que recibirá un número, y devolverá True si es primo o False, en caso contrario. En el archivo funcion_primo.php vamos a ingresar el siguiente código:

<?php
function primo($num){
$cont = 0;
for($i = 1; $i <= $num; $i++){
if($num % $i == 0){
//echo «$i <br>»;
$cont++;
}
}

if($cont==2){
return true;
}
else{
return false;
}
}
?>

El método recibe un número, y dentro del bucle del for vamos a recorrer desde el número 1 hasta el número ingresado (es decir tenemos una serie de números consecutivos). Luego vamos a dividir el número ingresado para cada uno de esos número consecutivos y a obtener el residuo por medio del comando %. Como el número primo es solo divisible para sí mismo y para la unidad, entonces vamos a contar cuántas veces el número ingresado tuvo residuo cero para cada número consecutivo desde el 1 hasta si mismo. Si el contador es igual a 2, entonces es número primo, caso contrario no, y es eso lo que devuelve la condición al final. Esta función se la puede usar de diferentes maneras como veremos más adelante.

3.- Ahora vamos a crear el archivo procesa_primo.php
Este archivo contiene el siguiente código PHP:

<?php
$num1 = $_POST[«numero_primo»];
include («funcion_primo.php»);
$resp = primo($num1);
if ($resp == true) {
echo «$num1 Es primo»;
}
else {
echo «$num1 No es primo»;
}
?>

Por medio de $_POST[«numero_primo»] estamos obteniendo el valor que el usuario ingresó en la caja de texto del primer formulario y almacenándolo en la variable $num1. Usamos include («funcion_primo.php»); para poder llamar a la función que creamos en ese archivo. Luego simplemente en la variable $resp llamamos al método primo y le enviamos el valor de la variable $num1. Por lo tanto $resp nos va a devolver true o false, según sea primo o no. Luego dentro del IF desplegamos el mensaje en pantalla informando si el número ingresado en el formulario es primo o no lo es.

Ahora vamos a hacer una variación del ejercicio anterior. Vamos a ingresar un número y el programa nos devolverá una lista desde el número ingresado hasta el número 1 y nos dirá si cada número es primo o no.
Por ejemplo, ingresamos el 9. El programa devolverá:
9 no es primo
8 no es primo
7 es primo
6 no es primo
5 es primo
4 no es primo
.
.

Vamos a seguir utilizando el archivo funcion_primo.php

1.- En un archivo nuevo creamos un formulario parecido al anterior. Pero el campo de texto se llamará numero_primo2 y en el action vamos a llamar a procesar_primos_sucesivos.php que lo crearemos más adelante.

El código del formulario sería el siguiente:

<form id=»form1″ name=»form1″ method=»post» action=»procesar_primos_sucesivos.php»>
<table width=»460″ border=»0″>
<tr>
<td colspan=»2″><div align=»center»><strong>Ingreso número</strong></div></td>
</tr>
<tr>
<td><strong>Ingrese un número:</strong></td>
<td><label>
<input type=»text» name=»numero_primo2″ id=»numero_primo2″ />
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan=»2″><div align=»center»>
<label>
<input type=»submit» name=»ok» id=»ok» value=»Ok» />
</label>
</div></td>
</tr>
</table>
</form>

2.- Crearemos el archivo procesar_primos_sucesivos.php
Este contendrá el siguiente código PHP:

<?php
//Almacenamos en la variable $num1 el valor ingresado en la caja de texto del formulario.
$num1 = $_POST[«numero_primo2»];
//Lamamos al archivo funcion_primo.php para poder utilizar la función primo.
include («funcion_primo.php»);

//Creamos una tabla para desplegar los datos
echo ‘<table width=»460″ border=»0″>’;

//Recorremos un bucle desde el número ingresado hasta el número 1.
for ($j = $num1; $j >= 1; $j–) {
//En un vector llamamos al método primo y le pasamos el valor de la variable $j, cada valor del vector $resp[] almacenará la información del número $j diciendo si es true en caso de ser primo, o false en caso contrario
$resp[$j] = primo($j);
echo ‘<tr>’;

//En caso de que el valor almacenado en cada posición $j en el vector sea verdadero le hacemos que despliegue que dicho número es primo, o que despliegue que no es primo si el valor almacenado es falso.
if ($resp[$j] == true) {
echo ‘<td width=»180″>’.$j.’ es primo </td>’;
}
else {
echo ‘<td width=»180″>’.$j.’ no es primo </td>’;
}
echo ‘</tr>’;
}
echo ‘<table>’;

?>

La explicación del programa está en los comentarios.
Ojalá les sirva. Es un programa muy sencillo pero muy útil
Saludos 🙂

Blog de WordPress.com.
Entries y comentarios feeds.