Pascal/Turbo Pascal - Pascal programa que descompone en factores primos

 
Vista:

Pascal programa que descompone en factores primos

Publicado por Fab2015 (1 intervención) el 09/09/2018 23:35:52
Buenas, debo realizar un programa en Pascal que realice la descomposicion factorial de un numero entero SIN USAR NINGUNA DE LAS PALABRAS SIGUIENTES: uses, crlscr, gotoxy, crt, readkey, string, break

Tengo este codigo con un problema en el while que, en el caso de repetirse la variable divisor, me muestra dos veces el contenido de la variable y no se como hacer para que se muestre solo una vez con su respectivo exponente (en el caso que se repita el mismo numero). Agradezco ayuda....Gracias!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
PROGRAM Tarea1 (input, output);
VAR numero, divisor, contar_factor: Integer;
 
BEGIN
    WRITE ('Ingrese numero... ');
    readln(numero);
    divisor := 2;
    contar_factor := 0;
 
    WHILE (divisor <= numero) DO
        IF (numero MOD divisor = 0) THEN // si el resto de dividir al num ingresado entre divisor es cero
 
            BEGIN
            numero := numero DIV divisor;
            contar_factor := succ(contar_factor);
            IF (contar_factor > 1) THEN
                BEGIN
                    writeln(divisor, '^', contar_factor);
                END
            ELSE
                writeln(divisor);
            END
        ELSE
        BEGIN
            divisor := succ(divisor); //si el resto no es cero, pruebo con el siguiente factor
            contar_factor := 0;
        END;
 
END.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 259
Oro
Ha aumentado 1 puesto en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Pascal programa que descompone en factores primos

Publicado por dario (22 intervenciones) el 10/09/2018 05:42:00
Hola, prueba con este codigo muy parecido al tuyo.
Salu2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program factoresPrimos;
var
    n,i:integer;
begin
    i:=1;
    writeln('Programa para descomponer un numero en sus factores primos');
    write('Ingrese un numero: ');
    readln(n);
 
    while i <= n do
    begin
        if n mod i = 0 then
        begin
            n:=n div i;
            write(i,' ');
            i:=2;
         end
        else
            inc(i);
    end;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar