Números primos y compuestos
Un número primo sólo se puede dividir exactamente por sí mismo y por 1. Debe ser un número entero positivo mayor que 1.
Un número compuesto se puede dividir exactamente entre otros números además de 1 y él mismo.
(Así que cualquier número entero mayor que 1 es primo o compuesto)
Ejemplos
Número
|
Se puede dividir
exactamente entre |
¿Primo o
compuesto? |
1
|
(1 no es primo ni compuesto)
|
|
2
|
1,2
|
Primo
|
3
|
1,3
|
Primo
|
4
|
1,2,4
|
Compuesto
|
5
|
1,5
|
Primo
|
6
|
1,2,3,6
|
Compuesto
|
7
|
1,7
|
Primo
|
8
|
1,2,4,8
|
Compuesto
|
9
|
1,3,9
|
Compuesto
|
10
|
1,2,5,10
|
Compuesto
|
Factores
Los "factores" son los números que multiplicas para llegar a otro número:
Algunos números se pueden factorizar de muchas maneras:
Si sólo hay una manera de factorizar un número, ese número es primo; si hay varias maneras es un número compuesto.
Tabla de números primos
A continuación se muestra la solución del problema si un número ingresado por el usuario es primo o compuesto, la solución esta dada en el Lenguaje Pascal.
{ Programador : Luis Umaña
Lenguaje : Pascal
Year : 2012 }
Program numeros_primos_compuestos;
Uses
Crt;
Var
num, i : Integer;
primo : byte;
res : char;
Begin
Repeat
Clrscr;
write('Ingrese un numero para comprobar si es primo o compuesto:');
readln(num);
primo:=0;
For i := 2 to (num - 1) Do
Begin
If (num mod i) = 0 then
primo:= 1;
End;
If num = 1 then
write('1 no es primo ni es compuesto');
If num > 1 then
begin
If primo = 1 then
writeln (num, ' es compuesto')
Else
write(num,' es primo ');
end;
writeln; writeln;
write('Desea ingresar otro numero (s/n):');
readln(res);
Until (res = 'n') or (res = 'N');
End.
Ahora la solución del programa que muestre los números primos comprendidos entre el rango de 1 a 100, la solución esta dada en el Lenguaje Pascal.
{ Programador : Luis Umaña
Lenguaje : Pascal
Year : 2012 }
Program numeros_primos_hasta_100;
Uses
Crt;
Var
i : Integer;
primo, contador : byte;
Begin
Clrscr;
writeln('Programa que muestra los numeros primos comprendidos');
write(' entre el rango de 1 a 100');
writeln; writeln;
contador:=2;
Repeat
primo:=0;
For i := 2 to (contador - 1) Do
begin
If (contador mod i) = 0 then
primo:= 1;
end;
If primo <> 1 then
write(contador,' ');
contador:= contador + 1;
Until contador = 100;
readln
End.