free pascal分解质因数描述 Description 每一个大于1的整数,都可以分解为一个或多个质数的积.现在,请你来完成这个任务.输入格式 Input Format 一行,一个整数,表示待分解的数.(2

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 23:32:02
free pascal分解质因数描述 Description 每一个大于1的整数,都可以分解为一个或多个质数的积.现在,请你来完成这个任务.输入格式 Input Format 一行,一个整数,表示待分解的数.(2

free pascal分解质因数描述 Description 每一个大于1的整数,都可以分解为一个或多个质数的积.现在,请你来完成这个任务.输入格式 Input Format 一行,一个整数,表示待分解的数.(2
free pascal分解质因数
描述 Description
每一个大于1的整数,
都可以分解为一个或多个质数的积.
现在,请你来完成这个任务.
输入格式 Input Format
一行,一个整数,表示待分解的数.
(2

free pascal分解质因数描述 Description 每一个大于1的整数,都可以分解为一个或多个质数的积.现在,请你来完成这个任务.输入格式 Input Format 一行,一个整数,表示待分解的数.(2
var
f:boolean;
n,i,j,k:longint;
a:array[1..100] of longint;
begin
readln(n);
i:=n div 2;j:=0;{i作为这个质因数,j作为质因数的下标}
repeat
if n mod i = 0 then begin{i为n的因数时在判断它是否为素数}
f:=true;
for k:=2 to trunc(sqrt(i)) do
if i mod k=0 then begin
f:=false;
break;
end;
if f then begin{如果是素数就存起来,并且让n除以它,接着做}
n:=n div i;
inc(j,1);
a[j]:=i;
end
else dec(i,1);
end
else dec(i,1);
until n=1;{到n=1时退出}
write(n,'=');{输出,要注意不要多输乘号}
for i:=1 to j-1 do write(a[i],'*');
writeln(a[j]);
end.
谨遵楼主意愿,未使用函数过程,若楼主有意,