[ Foro de Pascal ]

Programa Desafio - Descomponer factores primos

11-Sep-2015 00:18
Invitado (brst)
1 Respuestas

Quiero hacer un programa que me de la descomposición factorial de cualquier numero natural en factores primos.
Con la información que manejo hasta el momento (hasta el capitulo 6 de Konvalina) básicamente utilizando while, repeat until, for, (and, not, or).
Tengo un ejemplo, debería ser algo así pero sin las cadenas.

 
program descomfactprimos;
uses
crt;
var
n, nn, di, s, r, numero : integer;
cadena : string;
 
begin
clrscr;
writeln;
s := 1;
write(' Entre Numeri Entero : ');
readln(n);
nn := n;
while ( nn > 1 ) do
begin
di := 2;
while ( nn MOD di <> 0 ) do
inc(di);
cadena[s] := chr(di + 48);
cadena[0] := chr(s);
s := s + 1;
nn := nn div di;
end;
nn := 0;
n := 1;
numero := ord(cadena[1]) - 48;
for r := 2 to s do
begin
nn := ord(cadena[r]) - 48;
if numero <> nn then
begin
write(' ',numero,'^',n);
n := 1;
numero := nn;
end
else
begin
n := n + 1;
numero := nn;
end;
end;
writeln;
writeln(' Pulse Una Tecla');
readkey;
end.
 


 


14-Sep-2015 23:34
Nacho Cabanes (+31)

Y... ¿cual es la duda?

Por cierto, no entiendo para qué usas cadenas. Basta con probar a dividir entre 2 tantas veces como sea posible, luego divides entre 3 y así sucesivamente (para que fuera eficiente, podrías dividir sólo entre los números primos, pero para que sea rápido de programar, es más simple dividir entre todos, aun sabiendo que no vas a encontrar el 4 como divisor, ni el 6, ni otros muchos).






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)