一道简单的free pascal题目,各位free pascal大师解答一下吧.求2~100中每个数的质因子,输出如下形式:2=23=34=2*2...99=3*3*11100=2*2*5*5请一定是自编,要用我这种水平去做.最好用for循环.并请写上每一步的
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/23 04:49:44
一道简单的free pascal题目,各位free pascal大师解答一下吧.求2~100中每个数的质因子,输出如下形式:2=23=34=2*2...99=3*3*11100=2*2*5*5请一定是自编,要用我这种水平去做.最好用for循环.并请写上每一步的
一道简单的free pascal题目,各位free pascal大师解答一下吧.
求2~100中每个数的质因子,输出如下形式:
2=2
3=3
4=2*2
...
99=3*3*11
100=2*2*5*5
请一定是自编,要用我这种水平去做.最好用for循环.并请写上每一步的意思,谢谢!
一道简单的free pascal题目,各位free pascal大师解答一下吧.求2~100中每个数的质因子,输出如下形式:2=23=34=2*2...99=3*3*11100=2*2*5*5请一定是自编,要用我这种水平去做.最好用for循环.并请写上每一步的
//质因数分解
var
\x09n,nn:integer; //输入的数
\x09d:array[1..10000] of integer; //存放质数
\x09k:array[1..10000] of integer; //存放每个质数被整除的次数
\x09i,j:integer; //循环变量
\x09sum:integer; //被所有质数整除次数的总和
\x09z:integer; //质数个数
\x09s:integer; //记录输出质数的个数
\x09
function zhisu(n:integer):boolean;
var
\x09j,k:integer;
\x09findd:boolean;
begin
\x09k:=trunc(sqrt(n));
\x09if n=1 then zhisu:=false
\x09else if (n=2)or(n=3) then zhisu:=true
\x09else begin\x09
\x09\x09findd:=false;
\x09\x09j:=1;
\x09\x09repeat
\x09\x09\x09j:=j+1;
\x09\x09\x09if (n mod j)=0 then findd:=true;
\x09\x09until findd or (j>k);
\x09\x09zhisu:=not findd;
\x09end;\x09\x09
end;\x09
\x09
begin
for n:=2 to 100 do begin
// repeat\x09
\x09//readln(n); nn:=n; if n=d[i])and(nn mod d[i]=0) do begin
\x09\x09\x09inc(k[i]); nn:=nn div d[i];
\x09\x09end;\x09
\x09end;
\x09//计算质因数个数
\x09sum:=0;
\x09for i:=1 to z do sum:=sum+k[i];
\x09//输出
\x09s:=0;
\x09if sum0 then
\x09\x09\x09for j:=1 to k[i] do
\x09\x09\x09\x09begin
\x09\x09\x09\x09\x09inc(s);
\x09\x09\x09\x09\x09if s=sum then writeln(d[i]:0) else write(d[i]:0,'*');
\x09\x09\x09\x09end;\x09
\x09end;\x09\x09\x09
//until false;\x09
end;
end.