[プログラマー]少数のLvを探す1 - Python
881 ワード
[プログラマー]少数のLvを探す1
私の答え二重for文を初めて使用すると、答えは正しいが、時間効率の面では失敗する. テストステロンのふるいを使用します. では、テストステロンの体は少数の倍数であり、少数の規則ではない. の優先値が0の配列を入力値+1のサイズに変更します. 配列のインデックスは0から計算されるので、インデックス10を使用するには、インデックスをより大きな11サイズに作成する必要があります. その後、再複文が回転する. 2からn+1にかけて、各数の1の倍数を除いて、倍数のインデックスの値を1に変更します. 倍数が入力値を超えると、繰返しは停止します. は、各数の倍数のインデックスが1であり、少数のインデックスの値が0である. 配列のインデックス2から、戻り値が0の個数でよい. に感銘を与える
以前はジャワで解いていたが、その間にラ菌のふるいを忘れていた.
私の答え
def solution(n):
a = [0] * (n + 1)
for i in range(2, len(a)):
for j in range(2, len(a)):
idx = i * j
if idx > n:
break
a[idx] = 1
return a[2:].count(0)
以前はジャワで解いていたが、その間にラ菌のふるいを忘れていた.
Reference
この問題について([プログラマー]少数のLvを探す1 - Python), 我々は、より多くの情報をここで見つけました https://velog.io/@goshk95/프로그래머스-소수-찾기Lv.1-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol