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
請包括示例數據和問題中生成的輸出以及您期望看到的內容的描述。 –