2016-05-17 4 views
0

このプログラムをPython 3で作成し、数字がプライムかどうかを調べました。この素数検索プログラムをPythonでより便利にするには?

プログラムは今、私の問題は、私はこのプログラムでは入力指数の数字が。(私は、フォーム2 ** 4の数値を意味するか、5 * 8)ことができないということです

#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") 

follows-ようです。

もし私私はこの出力 -

enter image description here

取得入力2 ** 4は、どのようにして、入力指数に私のプログラムを変更できますか?

+1

を、私はそれもコンパイル信じていません。また、ヒント:指数として書かれた数字は、必ずしもプライムではありません!! – apomene

+0

@apomene指数関数的に私はa^b形式を意味します.... – soham

+0

正確には、そのような数値はaで割り切れますので、明らかに素数ではありません – apomene

答えて

1
num = eval(input()) 

は、(それが安全ではないのですが、おもちゃのプログラムのために、それは大丈夫でなければなりません)あなたがやりたいだろうが、定義によって、次のように書かれた数が素数でないので、私は本当にポイントが表示されていません。

また、使用することによって、反復を大幅に節約することができます。このインデントと

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

evalは何を表していますか? – soham

+0

基本的には、文字列引数がPythonコードであるとみなし、Pythonインタプリタにコードを入力したときと同じように評価します。悪意のあるユーザーがコードを入力して制御しなくても評価されるため、安全ではありません。 – polku

+0

sqrtが定義されていません...構文エラー...なぜですか? – tatan

関連する問題