線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1216
推到 Plurk!
推到 Facebook!

請問要怎麼寫一個質數相加的程式....

尚未結案
mp6dk284
一般會員


發表:4
回覆:8
積分:2
註冊:2004-12-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-13 13:14:32 IP:203.64.xxx.xxx 未訂閱
例如:我們輸入一個範圍1~10 程式會run出 2 3 5 7=15 麻煩各位大大指教一下...
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-13 13:37:24 IP:202.145.xxx.xxx 未訂閱
你好,你所發問題問題視為作業問題!! 請將您所寫的程式張貼出來,針對有問題的地方請教,而不是給題目就想要答案 若未張貼程式碼,則將依本站規定刪除    
mp6dk284
一般會員


發表:4
回覆:8
積分:2
註冊:2004-12-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-13 17:44:16 IP:203.64.xxx.xxx 未訂閱
不好意思~我還不太了解這邊的規定...以下是一個類似的程式碼(奇數相加)..給一個數字10 run出結果:1+3+5+7+9=25
procedure TForm1.Button1Click(Sender: TObject);
  var i, xNo, xSum :integer;
begin
  xNo:=strtoint(edit1.text);
  xSum:=0;
  for i:=1 to xNo do begin
    if i mod 2 =1
    then xSum:= xSum   i;
end;
  label2.Caption:= inttostr(xSum);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  edit1.Text:='';
  label2.Caption:='';
end;    end.
    請問在判斷那邊應該如何假設ㄋ??     麻煩妳們嚕!!
writeman
初階會員


發表:31
回覆:34
積分:28
註冊:2004-02-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-13 20:30:21 IP:61.60.xxx.xxx 未訂閱
hi 要把質數相加要先判斷該數是否為質數 以下用isprime函數來實現 整個程式大致是這樣子    
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  sum: integer;      function isprime(no: integer): boolean;
  var
    i, j: integer;
  begin
    result:= false;
    if(no = 1)then exit;
    j:= trunc(sqrt(no));
    for i:= 2 to j do begin
      if(no mod i = 0)then exit;
    end;
    result:= true;
  end;
begin
  sum:= 0;
  for i:= 1 to 10 do begin
    if(isprime(i))then sum:= sum   i;
  end;
  showmessage(inttostr(sum));
end;
mp6dk284
一般會員


發表:4
回覆:8
積分:2
註冊:2004-12-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-13 23:57:50 IP:203.64.xxx.xxx 未訂閱
這位大大您好阿!! 在請教妳一ㄍ問題~今天如果我只是要做一個輸入一個數字~然後判斷是否為質數run出結果會出現:true or false 應該在程式ㄉ哪邊做修正ㄋ~還是不可以這樣寫ㄋ?? 麻煩妳嚕!!
writeman
初階會員


發表:31
回覆:34
積分:28
註冊:2004-02-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-12-14 08:18:41 IP:61.70.xxx.xxx 未訂閱
引言: 這位大大您好阿!! 在請教妳一ㄍ問題~今天如果我只是要做一個輸入一個數字~然後判斷是否為質數run出結果會出現:true or false 應該在程式ㄉ哪邊做修正ㄋ~還是不可以這樣寫ㄋ?? 麻煩妳嚕!!
hi 直接套用上面的isprime就行了 假設輸入值是7
if(isprime(7))then begin
  showmessage('是質數');
end else begin
  showmessage('不是質數');
end;
mp6dk284
一般會員


發表:4
回覆:8
積分:2
註冊:2004-12-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-12-14 22:23:33 IP:203.64.xxx.xxx 未訂閱
引言:
引言: 這位大大您好阿!! 在請教妳一ㄍ問題~今天如果我只是要做一個輸入一個數字~然後判斷是否為質數run出結果會出現:true or false 應該在程式ㄉ哪邊做修正ㄋ~還是不可以這樣寫ㄋ?? 麻煩妳嚕!!
hi 直接套用上面的isprime就行了 假設輸入值是7
if(isprime(7))then begin
  showmessage('是質數');
end else begin
  showmessage('不是質數');
end;
那我如果要把那個輸入値,寫成我自己可以任意輸入數字又該如何寫這個程式呢? 可以麻煩你把整個架構寫給我看ㄇ?? 我是初學者還有很多地方不懂 還忘多多指教!!
writeman
初階會員


發表:31
回覆:34
積分:28
註冊:2004-02-17

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-12-14 22:43:23 IP:61.60.xxx.xxx 未訂閱
引言: 那我如果要把那個輸入値,寫成我自己可以任意輸入數字又該如何寫這個程式呢? 可以麻煩你把整個架構寫給我看ㄇ??
放一個edit元件 放一個button元件 當按下button時,把edit裡的值拿來給isprime算算
procedure TForm1.Button1Click(Sender: TObject);      function isprime(no: integer): boolean;
  var
    i, j: integer;
  begin
    result:= false;
    if(no = 1)then exit;
    j:= trunc(sqrt(no));
    for i:= 2 to j do begin
      if(no mod i = 0)then exit;
    end;
    result:= true;
  end;
begin
  if(isprime(strtoint(edit1.text)))then begin
    showmessage('是質數');
  end else begin
    showmessage('不是質數');
  end;
end;
mp6dk284
一般會員


發表:4
回覆:8
積分:2
註冊:2004-12-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-12-14 23:24:24 IP:203.64.xxx.xxx 未訂閱
感謝您的熱心相助...以後還望妳多多指教嚕!!
系統時間:2024-07-01 9:04:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!