如何使Python中的素数查找程序更有用?

时间:2016-05-17 08:26:35

标签: python python-3.x

我在Python 3中创建了这个程序来检查数字是否为素数。

该计划如下 -

  #Python program to check if the input number is prime or not

  # take input from the user
  num = int(input("Enter a number: "))


  if num > 1:
     # check for factors
     for i in range(2,num):
        if (num % i) == 0:
           print(num,"is not a prime number")
           print(i,"times",num//i,"is",num)
           break
        else:
           print(num,"is a prime number")
        else:
           print(num,"is not a prime number")

现在,我的问题是我无法在此程序中输入指数数字。(我的意思是数字形式为2 ** 4或5 * 8)。

如果输入2 ** 4,我会得到此输出 -

enter image description here

如何更改程序以输入指数?

1 个答案:

答案 0 :(得分:2)

num = eval(input()) 

会做你想做的事(这不安全,但玩具程序应该没问题)但根据定义,这样写的数字不是素数,所以我真的不明白这一点。

您还可以使用以下方法保存大量迭代:

 for i in range(2,sqrt(num)+1):