X= 120 ^ (1/n)
ln(X) = Ln(120 ^ (1/n))
ln(X) =(1/n) * ln(120)
X = E ^ ((1/n) * ln(120))
写成Delphi语句:
X := Exp ( (1 / N) * Ln(120)));     ____     ____
     \ p \   / g /
      \ l \_/ n /
       \ a   o /
        \ i s /
         \ n /
          \_/

解决方案 »

  1.   

    回复人: technofantasy(www.applevb.com) (  ) 信誉:1*2*3*4*5这位回答是正确的,但是你通过什么算法得到这个答案的了?
      

  2.   

    不就是求约数吗?用一循环,用几次GETYUESHU函数解决了,不过GETYUESHU 
    要自己编哟
      

  3.   

    function Calc(mNumber: Integer; mCount: Integer): string;
    var
      I: Integer;
    begin
      if mCount = 0 then begin
        Result := '';
        Exit;
      end;
      if mCount = 1 then begin
        Result := IntToStr(mNumber);
        Exit;
      end;
      for I := 2 to Round(Sqrt(mNumber)) do
        if mNumber mod I = 0 then begin
          Result := IntToStr(I) + '*' + Calc(mNumber div I, mCount - 1);
          Exit;
        end;
      Result := '';
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Caption := Calc(120, 5); //2*2*2*3*5
      //Calc(1200000000, 19); //2*2*2*2*2*2*2*2*2*2*3*5*5*5*5*5*5*5*5
    end;
      

  4.   

    定义一个数组a
    把120的最小公约数都放进去
    然后用递归
    把a里的元素排列组合C5,5放到x1,x2,x3,x4,x5
    还要考虑公约数重复,导致x1,x2,x3,x4,x5排列组合中有重复的组合,删掉这些
      

  5.   

    用function Power(const Base, Exponent: Extended): Extended吧
      

  6.   

    use ……,math;
    ……
    eg:
      x:=Power(12000,1/4);//X*X*X*X=12000; =>X=?
      

  7.   

    colacoca:
    呵呵,概念错误。一个数怎么会有公{!!!}约数呢?两个以上才有
    看来我们的小学数学都忘得差不多了:)
      

  8.   

    result:
    1  2  3  4  5  6  8  10  12  15  20  24  30  40  60  120
    1 1 120
    1 2 60
    1 3 40
    1 4 30
    1 5 24
    1 6 20
    1 8 15
    1 10 12
    1 12 10
    1 15 8
    1 20 6
    1 24 5
    1 30 4
    1 40 3
    1 60 2
    1 120 1
    2 1 60
    2 2 30
    2 3 20
    2 4 15
    2 5 12
    2 6 10
    2 10 6
    2 12 5
    2 15 4
    2 20 3
    2 30 2
    2 60 1
    3 1 40
    3 2 20
    3 4 10
    3 5 8
    3 8 5
    3 10 4
    3 20 2
    3 40 1
    4 1 30
    4 2 15
    4 3 10
    4 5 6
    4 6 5
    4 10 3
    4 15 2
    4 30 1
    5 1 24
    5 2 12
    5 3 8
    5 4 6
    5 6 4
    5 8 3
    5 12 2
    5 24 1
    6 1 20
    6 2 10
    6 4 5
    6 5 4
    6 10 2
    6 20 1
    8 1 15
    8 3 5
    8 5 3
    8 15 1
    10 1 12
    10 2 6
    10 3 4
    10 4 3
    10 6 2
    10 12 1
    12 1 10
    12 2 5
    12 5 2
    12 10 1
    15 1 8
    15 2 4
    15 4 2
    15 8 1
    20 1 6
    20 2 3
    20 3 2
    20 6 1
    24 1 5
    24 5 1
    30 1 4
    30 2 2
    30 4 1
    40 1 3
    40 3 1
    60 1 2
    60 2 1
    120 1 1
    procedure TForm1.Button1Click(Sender: TObject);
    var
      a:array[1..20] of integer;
      i,j,k,l:integer;
      s:string;
    begin
     i:=1;
     s:='';
     for j:=1 to 20 do
      a[j]:=0;
     for j:=1 to 120 do
       if (120 mod j)=0 then
         begin
          a[i]:=j;
          i:=i+1;
         end;
      for j:=1 to 20 do
       if a[j]=0 then
       begin
        i:=j-1;
       break
       end
       else
        s:=s+'  '+inttostr(a[j]);
    memo1.Lines.Text:=s;
    for  j:=1 to i do
     for  k:=1 to i do
       for l:=1 to i do
          if a[j]*a[k]*a[l]=120 then
           memo1.Lines.Add(inttostr(a[j])+' '+inttostr(a[k])+' '+inttostr(a[l]));
     end;
    顺便请教一下,我怎么不会用power()呢?请指教。