主题:求解
cherryry
[专家分:0] 发布于 2011-08-24 19:26:00
)键入两个自然数N和K,将N写成K个大于1的自然数相乘,要求这K个数按从小到大排列,而且除了第K个数之外,前面(K-1)个数是N分解出来的最小自然数。
例如:N=24,K=2时,输出为24=2*12,而不是24=4*6
N=3,K=2时,输出则为“No answer!”
回复列表 (共2个回复)
沙发
幽灵密码 [专家分:3510] 发布于 2011-10-15 21:41:00
function prime(n:integer):boolean;
var i:integer;
begin
prime:=true;
for i:=2 to trunc(sqrt(n)) do if n mod i=0 then exit(false)
end;
procedure mul(n,k:integer);
var i,j:integer;
begin
if (k>1) and prime(n) then begin write('No answer!');exit end;
write(n,'=');
for i:=1 to k-1 do begin
for j:=2 to trunc(sqrt(n)) do if n mod j=0 then break;
write(j,'*');
n:=n div j
end;
write(n)
end;
板凳
yutianxiang [专家分:50] 发布于 2012-04-18 17:43:00
递归的孩纸飘过~
我来回复