0
PROGRAM FactorPrimo(input,output);
VAR
numero : integer;
factor : integer;
resto : integer;
primo : integer;
multiplicidad : boolean;
BEGIN
write('Ingrese numero: ');
readln(numero);
factor := 2;
primo := 0;
multiplicidad := false;
IF numero > 1 THEN
BEGIN
REPEAT
BEGIN
resto := numero MOD factor;
IF resto = 0 THEN
BEGIN
numero := numero DIV factor;
primo := primo + 1;
multiplicidad := true;
END
ELSE IF multiplicidad = true THEN
IF primo > 1 THEN
writeln(factor,'^',primo);
multiplicidad := false;
ELSE
writeln(factor);
multiplicidad := false;
ELSE
factor := factor + 1;
primo := 0;
END;
UNTIL numero = 1;
writeln(factor);
END
ELSE
write('Debe ingresar un numero mayor a 1');
END.
我不知道为什么,但程序没有输入IF PRIMO > 1 then
它总是进入下面的ELSE语句。我做错了什么?我已经在java中完成了,它工作正常。Pascal问题与其他问题如果
做工精细它应该说:
factor^primo
但显示的内容仅仅是:
factor
应该从如果对否则,如果去和尝试别的。但是它现在正在做的是从if到else,然后是else。
一个例子,用数字360就应该说:
2^3
3^2
5
但是它现在展示的是:
2
3
5
我想这是因为它总是与普里莫= 0结束,我不知道如何解决这个问题。
我弄明白了,它从“if”语句到“else”使primo始终= 0。我该如何解决这个问题? – user2912069
在转到“else if”之前,它在“if”和“else”之间跳转三次。我做错了什么? – user2912069
请包括示例数据和问题中生成的输出以及您期望看到的内容的描述。 –