下面的过程用于实现把一个偶数分解为两个素数之和,按要求作答.1)写一个自定义函数IsPrimeNumber(Num:integer),用于判断用户输入的数值"Num"是否是素数.
2)利用上一题的函数IsPrimeNumber(Num:integer),写一个自定义函数,当用户输入一个偶数时,把它分解为两个素数之和,对于不是偶数或者无法分解的数应该给予提示说明.

解决方案 »

  1.   

    s:=true;   
        
      for   i:=2   to   Trunc(Sqrt(要判断的数))   do   
      begin   
          if   要判断的数   mod   i=0   then   
          begin   
              //此数不是素数;   
              s:=false;   
              Break;   
          end;   
      end;   
        
      //执行到此s表明是否素数。
      

  2.   

    function TForm1.AnalyzeNumber(Num: integer; var Num1, Num2: integer): boolean;
    var
        i,iNum1,iNum2:integer;
    begin
        Num1 := 0;
        Num2 := 0;
        Result := false;    if (Num mod 2)<>0 then
            Exit;    iNum1 := Num div 2;
        for i := 2 to iNum1 do
        begin
            if IsPrimeNumber(i) and IsPrimeNumber(Num-i) then
                Break
            else
                Continue;
        end;
        
        Num1 := i;
        Num2 := Num-i;
        Result := true;
    end;function TForm1.IsPrimeNumber(Num: integer): boolean;
    var
        i,iTotal,iMod : integer;
    begin
        iMod := Num Mod 2;
        if ((iMod = 0) and (Num <>2)) then
        begin
            Result := false;
            Exit;
        end;    iTotal := Num div 3;
        for i := 3 to iTotal do
        begin
            iMod := Num Mod i;
            if iMod = 0 then
            begin
                Result := false;
                Exit;
            end;
        end;    Result := true;
    end;