2014-09-28 81 views
-2

任何人都可以幫助我使用Pascal函數檢查數字是否爲素數?返回true或false的布爾函數將是最有用的,因爲我的程序需要循環更多的數字,測試它們並輸出,如果它們確實是質數。這是我可以管理的部分,但是我在構建實際功能以檢查它時遇到問題。檢查號碼是否爲素數

由於一噸

+0

這聽起來有點像「請爲我寫我的代碼」。如果你展示你的工作,特別是問題出在哪裏,你可能會得到更好的迴應。如果您有關於算法檢測數字是否爲素數的問題,則最古老和最知名的算法是「埃拉託斯泰尼斯篩」(The Sieve of Eratosthenes)。你可以從那裏開始。 – 2014-09-28 17:30:22

+0

我喜歡編碼,我討厭在沒有找到自己的問題的情況下提出問題,但是我很認真地停留在這個問題上,卻沒有任何關於如何繼續的想法。我從來沒有要求任何人「爲我寫代碼」。我需要的只是像你這樣的技巧來幫助我。下次我會說清楚。感謝您的回覆。 – Eagle 2014-09-28 21:22:14

回答

2

試試這個:

Program Primechk; 
Var 
Num      :  Integer; 
checker,count,adder  :  ShortInt; 
Begin 
Write('Enter one number : '); 
Readln(Num); 
adder := 0; 
For count := 1 to 10 do 
    begin 
    checker := num mod count; 
    if checker = 0 then 
    adder := adder + 1 
    end; 
if (num <= 10) and (adder > 2) then 
    Writeln(num, ' is not a prime number') 
else 
    if (num > 10) and (adder > 1) then 
     Writeln(num, ' is not a prime number') 
    else 
     Writeln(num,' is a prime number'); 
end. 

您可以使用它作爲一個基礎,它modifie您的需求。 簡單的googleing:]

+1

是的,重寫它的功能,它似乎工作。如果num等於或小於1,必須添加if語句以排除。這是最終的函數。函數isprime(num:integer):boolean; var 檢查器,計數,加法器:ShortInt; begin 加法器:= 0; for count:= 1 to 10 do begin checker:= num mod count; if checker = 0 then adder:= adder + 1 end; 如果(NUM <= 10)和(加法器> 2)然後 isprime:=假 別的 如果(NUM> 10)和(加法器> 1),然後 isprime:=假 否則如果num <= 1,則 isprime:= false else isprime:= true end; – Eagle 2014-09-30 16:38:23