gpt4 book ai didi

basic - GW BASIC 中以下程序有什么错误?

转载 作者:行者123 更新时间:2023-12-02 09:20:29 28 4
gpt4 key购买 nike

我正在编写一个程序,可以判断给定的数字是否是素数。无论我输入素数还是其他数字,总是显示“这不是素数”。这其中有什么错误吗?

10    input "what is the number";a    
20 let b=1
30 let b=b+1
40 let k=a/b
50 let p=fix(k)
60 if p=k then goto 100
70 if b<a then goto 30
80 print "it is a prime number"
90 goto 110
100 print "it is not a prime number"
110 end
run

最佳答案

遵循逻辑:

  1. 您输入一个数字,a
  2. 程序将 b 创建为 1
  3. 程序立即将 1 添加到 b,因此 b 现在为 2
  4. 程序将k设置为a/b。这意味着 k 现在是 a 的一半。
  5. 程序将 p 设置为 k,不包含可能存在或不存在的 .5。
  6. 如果 p(a 的一半向下舍入)等于 k(a 的一半未舍入)向下),也就是说,如果 a 能被 b 整除,则结果为 100,并表示它不是素数
  7. 否则,如果 b(即 2)小于 a,程序将转到第 30 行并添加另一个 1 b 并重复该过程,但现在 b3
  8. 否则,如果 b(即 2)等于或大于 a,则显示这是一个素数.

假设您输入的数字是 2。事实上,2 是一个质数。然而,按照上面的逻辑,你会看到程序会告诉我们它不是素数,因为在第6步,二除以二是一,截断一仍然是一。对于除 1 之外的任何数字都应该如此,因为所有数字都可以被自身整除。

我的猜测是,在您的测试中,您从未测试过 1;程序应该说 1 是一个素数(这是因为即使 1 可以被它自己整除,但你还是从 b=2 开始)。

(另请注意,这在技术上也是错误的:1 不是素数。)

关于basic - GW BASIC 中以下程序有什么错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43047110/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com