2017-07-30 5 views
0

私はこのコーディング全体に全く新しいです。私は基本を学びたいと思っています。現在、入力がプライムであるかどうかを示すプライム関数を作成しようとしています。私は過去の投稿をチェックしたが、私が行ったのと同様の方法で問題に近づいた人はいなかったので、私は先例がない。誰かが私のコードがなぜ必要なように機能していないのかを私に知らせることができたら、本当に感謝します。Python Prime functions

def is_prime(x): 
    if x==0 or x==1: 
      return False 
    for n in range(2,x-1): 
     if "." not in str(int(x/n)): 
      return True 
     else: 
      return False 

私はちょうどすべての出力が小数点以下が含まれますので、その後、数が素数になるのxの前の任意の数字が要因であるかどうかを判断するためにループを作成し、もしできなかったことを考えました。

+1

モジュロ演算子 '%'を使用してください。ところで、intの結果は常に整数なので、 'str(int(whatever))'にはドットを入れることはできません。 –

+0

また、早く 'True'を返すことはできません... –

答えて

0

これは、パフォーマンスに優れたアプローチではありません。
また、Python2で2つの整数を分割すると整数になりますので、精度ポイントはありません。 Python3では、常に精度の高い点が得られますが、それを整数にキャストするとPython2の場合と同じように常に失われます。

0

プログラミング言語の基本的な動作についてもう質問を投稿する前に、ドキュメントで答えを見つけてみてください。

私はここからそれを理解したよう

int

戻り数や文字列xから構築された整数オブジェクト、または引数を指定しない場合は0を返します。 xが数値の場合は、平方整数、長整数、または浮動小数点数になります。 xが浮動小数点の場合、変換はゼロに向かって切り捨てられます。引数が整数の範囲外の場合、関数はlongオブジェクトを返します。