首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不确定为什么我检查数字是否为质数的代码不起作用?

不确定为什么我检查数字是否为质数的代码不起作用?
EN

Stack Overflow用户
提问于 2020-11-28 02:24:55
回答 1查看 62关注 0票数 0

我需要创建一个程序来检查一个数字是否是质数,它首先提示用户输入一个数字,然后输入一个最多3个字符的字符串。如果通过键盘输入的字符超过3个,程序应输出消息并退出。如果通过键盘输入非数字字符,程序应输出无效输入和退出消息。如果输入有效,程序应显示输入的消息号码是质数或输入的消息号码不是质数。

我目前有代码来确定这个数字是否是质数,但它似乎不起作用,当输入的数字是质数时,它不会给出“是质数”的输出。有没有人能看到我质数代码哪里出了问题?

代码语言:javascript
复制
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')
EN

回答 1

Stack Overflow用户

发布于 2020-11-28 02:42:09

使用input()命令,您可以提示用户为您提供输入。你得到的是一个字符串。然后,你可以将其转换为整数,并生成不同的大小写。注意:如果你输入一个浮点数,int(str)将会爆炸,并且你会得到一条invalid input的信息。也许你还应该包括这样一种情况,即你检查输入是否是数字,而不是整数。

代码语言:javascript
复制
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')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65042160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档