2014-09-28 82 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