检查一个数是否为素数的程序 [英] Program that checks if a number is prime number

查看:71
本文介绍了检查一个数是否为素数的程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,我创建了这个程序来检查一个数字是否是素数.它有效,但出于某种原因说 999 是一个质数.我的错在哪里.如果有人解释,那就太好了.谢谢!

Hello I have created this program to check if a number is a prime number. It works but for some reason says that 999 is a prime number. Where is my mistake. It would be great if someone explained. Thank You!

这是我的程序:

number = raw_input('Enter a Number: ')
nnumber = int(number)
prime_range = range(2, nnumber)

for x in prime_range:

    if nnumber % x == 0:
        print 'Not a Prime Number!'
        break

    else:
        print 'Prime Number!'
        break

推荐答案

追踪.x2开头,然后测试999%2;它是 1,所以 else 被执行,质数!"被打印,并且循环被打破.程序结束.

Trace it. x starts with 2, then tests 999 % 2; it is 1, so else is executed, "Prime number!" is printed, and loop is broken out of. Program ends.

相反,您需要打印质数!"仅当您测试了 x 的所有可能性时.最简单的方法是取消缩进 else:(并在那里删除 break):

Instead, you need to print "Prime number!" only when you tested all possibilities for x. The easiest way to do that is to unindent else: (and delete break there):

for x in prime_range:

    if nnumber % x == 0:
        print 'Not a Prime Number!'
        break

else:
    print 'Prime Number!'

Python 执行 forelsefor 完成而没有被破坏:正是你想要的.

Python executes else of a for when for completes withoout being broken: exactly what you want.

这篇关于检查一个数是否为素数的程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆