嗯,我不懂那种语言,但它看起来很容易阅读。你的第一个问题是这一行:
if (primenum / primenum) = 1 or primenum / 1 = 0 then
这是测试primenum
除以primenum
是一还是primenum
除以一是零。第一个条件将始终为真,因此您的算法将报告每个整数都是质数。
让我们回顾一下素数的定义。如果一个自然数n
恰好有两个不同的自然数除数,那么它就是素数。这意味着要检查并查看是否为素数,您必须验证除了和本身n
没有其他除数(请注意,隐式不能等于,否则它的唯一除数是并且不不同)。要做到这一点,只需考虑所有可能的数字,这些数字可能是 exclude 和本身的除数,并检查其中是否有除数。这意味着我们只是循环检查这些数字中的任何一个是否均分。范围内的自然数n
1
n
n
1
1
1
n
1
n
n
2
n - 1
n
2
n - 1
是唯一可能无效n
的素数。
因此,实现一个数字是否为素数的测试的最天真的方法如下。接受一个数字作为输入n
。然后,检查是否n
小于2
。如果是,则不能是素数。2
然后,从到循环n - 1
;调用循环变量k
。检查是否有k
任何2
均分n - 1
( n
) if n mod k = 0
。如果有这样的k
,那么n
不能是素数,你可以从循环中中断。否则,如果循环终止而没有中断,n
则为素数。所以,在伪代码中
integer n
get n
boolean flag
if n < 2
flag = false
else
flag = true
for k = 2 to n - 1
if n mod k = 0
flag = false
break
if flag
print "prime"
else
print "not prime"
现在,只需对您的代码进行一点评论。不要命名输入primenum
。您的代码的读者可能会认为这primenum
实际上是一个质数,因为您如此命名它。像这样的名字valueToTest
在这里会被强烈推荐。