将一个正整数分解质因数由键盘输入一个正整数n,输出n的分解质因数这道题用pascal语言如何做

来源:百度知道 编辑:UC知道 时间:2024/05/12 10:35:02
是用bp做

const
max=1000;
var
q,n,i,j:longint;
num,p:array[1..max] of longint;
procedure main;
var x:longint;
begin
fillchar(num,sizeof(num),0);
fillchar(p,sizeof(p),0);
q:=0; x:=1;
while(n>1) do
begin
inc(x);
if n mod x=0 then
begin
inc(q); p[q]:=x;
while(n mod x=0) do
begin
n:=n div x;
inc(num[q]);
end
end
end
end;
begin
read(n);
main;
for i:=1 to q do
for j:=1 to num[i] do
write(p[i],'*');
write(1)
end.
不过我可能多了个1

var n,a:integer;
b:boolean;
begin
write('n=');readln(n);
b:=true;
write(n,'=');
repeat
for a:=2 to n do if n mod a=0 then begin n:=n div a; if b then begin write(a); b:=false; end else write('*',a); end;
until