嗯,我不懂那种语言,但它看起来很容易阅读。你的第一个问题是这一行:
if (primenum / primenum) = 1 or primenum / 1 = 0 then
这是测试primenum除以primenum是一还是primenum除以一是零。第一个条件将始终为真,因此您的算法将报告每个整数都是质数。
让我们回顾一下素数的定义。如果一个自然数n恰好有两个不同的自然数除数,那么它就是素数。这意味着要检查并查看是否为素数,您必须验证除了和本身n没有其他除数(请注意,隐式不能等于,否则它的唯一除数是并且不不同)。要做到这一点,只需考虑所有可能的数字,这些数字可能是 exclude 和本身的除数,并检查其中是否有除数。这意味着我们只是循环检查这些数字中的任何一个是否均分。范围内的自然数n1nn111n1nn2n - 1n2n - 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在这里会被强烈推荐。