我需要创建一个程序来检查一个数字是否是质数,它首先提示用户输入一个数字,然后输入一个最多3个字符的字符串。如果通过键盘输入的字符超过3个,程序应输出消息并退出。如果通过键盘输入非数字字符,程序应输出无效输入和退出消息。如果输入有效,程序应显示输入的消息号码是质数或输入的消息号码不是质数。
我目前有代码来确定这个数字是否是质数,但它似乎不起作用,当输入的数字是质数时,它不会给出“是质数”的输出。有没有人能看到我质数代码哪里出了问题?
def isPrime(n):
for i in range(2, n):
if (num % i) == 0:
print("is not a prime number")
break
else:
print("is a prime number")
str = input('Please enter a decimal number: ')
try:
n = int(str)
if len(str) > 3:
print ('Invalid input')
sys.exit()
if isPrime(n):
print ('Number entered is a prime number')
else:
print ('Number entered is not a prime number')
except:
print ('Number is not a prime number')发布于 2020-11-28 02:42:09
使用input()命令,您可以提示用户为您提供输入。你得到的是一个字符串。然后,你可以将其转换为整数,并生成不同的大小写。注意:如果你输入一个浮点数,int(str)将会爆炸,并且你会得到一条invalid input的信息。也许你还应该包括这样一种情况,即你检查输入是否是数字,而不是整数。
import sys
def isPrime(n):
for i in range(2, n):
if (n % i) == 0:
return False
return True
str = input('Give an integer, with no more than 3 digits: ')
try:
n = int(str)
if len(str) > 3:
print ('Invalid input! Up to three digits!')
sys.exit()
if isPrime(n):
print ('Is prime')
else:
print ('Not prime')
except:
print ('Invalid input! Not a number')https://stackoverflow.com/questions/65042160
复制相似问题