私のコードに何が問題なのかよくわかりません。私は、数値の素因数分解を発見し、数値を反復するプログラムを書くことを試みています。私のコードは、指定されたエラーが、私は何度も何度も私のインデントの上にチェックしましたインデントエラー - python
Traceback (most recent call last):
File "python", line 15
sieve = [True] * n
^
IndentationError: expected an indented block
ある
import math
import time
def primfacfind(n1,n2):
while n1 < n2:
n = n1
primfac=[]
time_start = time.clock()
def primes(n):
sieve = [True] * n
for i in xrange(3,int(n**0.5)+1,2):
if sieve[i]:
sieve[i*i::2*i]=[False]*((n-i*i-1)/(2*i)+1)
return [2] + [i for i in xrange(3,n,2) if sieve[i]]
print primes(n)
def factfind(lsp,n): #finds factors of n among primes
for i in lsp:
if n%i==0:
primfac.append(i)
else:
i+=1
factfind(primes(n),n)
print primfac
def simplify(lsp):
for i in lsp:
if lsp.count(i) > 1:
i+=1 #should simplify to 3^2 instead of 3,3; unfinished
time_end = time.clock()
time_elapsed = time_end - time_start
print time_elapsed
n1+=1
print primfacfind(6,15)
ある、と私は間違っているものにのようにわからないと思います。このプログラムは、全体的な機能とwhileループでは機能しませんでしたが、どのように違いが見られるのか分かりませんでした。私がPythonに若干新しいので、回答コードができるだけ単純なものであったことは理解できます。
このエラーの助けに感謝します。ありがとう!
スペースとタブを混ぜている可能性が最も高いです。 –
@MosesKoledoyeを修正できるテキストエディタを入手してください。私はrepl.itをオンラインコンパイラを使用しています。私はタブキーを打っています... – heather
どこかに間違ったスペースがあるかもしれません。それは伝えにくいです。あなたのコンピュータ上で単にpythonを使う方法はありますか?テキスト編集者はミツバチです。また、他の関数の内部で関数を定義したい場合もありますが、この場合は外部で定義する必要があります。インデントの問題にも役立つかもしれません。 –