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

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 05:28:43
freepascal分解质因数描述Description每一个大于1的整数,都可以分解为一个或多个质数的积.现在,请你来完成这个任务.输入格式InputFormat一行,一个整数,表示待分解的数.(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.
谨遵楼主意愿,未使用函数过程,若楼主有意,