我正在尝试制作素数和合成数字游戏,在该游戏中您将数字识别为素数或合成数字,但始终会显示“正确答案”。
我尝试使用中断并将其他部分放在外部循环中,但仍然得到错误的语句。
import random
a = "composite number"
b = "prime number"
num = random.randint(2 , 10)
print(num)
guess = str(input("tell if it is composite number or prime number: "))
for i in range (2,num):
if (num % i) == 0:
num == a
else:
num == b
### I think this section is the wrong one. It only prints "correct answer" even if I intend to write the wrong answer
if guess == a:
print("correct answer")
elif guess == b:
print("correct answer")
elif guess != b:
print("wrong answer")
elif guess != a:
print("wrong answer")
我希望它会显示正确的答案,无论是正确的答案还是错误的答案
答案 0 :(得分:0)
您的代码中有一些错误。首先,在for
循环中,您使用的是比较(==
,而不是分配(=
),但是无论如何,即使您是指后者,您也没有使用{{1 }}。最后的num
也是错误的。
最后,您可以通过两种方式优化print
循环:从for
到2
的迭代,以及一旦发现sqrt(num)
不是质数就中断。 / p>
num