1 で終わる特定の間隔で素数を見つける方法

プログラミングQA


指定された範囲内で数字 1 で終わる素数を見つけて出力します

入力形式:

範囲を取得する

出力フォーマット:

1 で終わる指定された範囲内の素数を出力します

入出力例:

1

100

11 31 41 61 71

私が犯したエラーは何ですか?

私が試したこと:

l=int(input('enter the lowest'))
h=int(input('enter the highest'))
for i in range(l,h+1):
    if i>1:
        for e in range(2,i):
            if(i%e)==0:
                break
            else:
                if i%10==1:
                    print(i)

見積もり:

1 で終わる特定の間隔で素数を見つける方法

アドバイス: 懸念事項を分けてください。物事が楽になります!
数が素数であるかどうかはかなり明確に定義されており、数自体以外には依存しません。

パイソン
def IsPrime(n)
  ...
  return ...

あなたのコードを見てください!
単位桁が 1 の素数のみを表示したいことはわかっています。単位桁を確認するのはかなり簡単で高速ですが、数値が素数かどうかを確認するのはより困難です。
最も簡単なパスを探します:

パイソン
l=int(input('enter the lowest'))
h=int(input('enter the highest'))
unit= l%10
if unit !=1:
    # adjust unit to next number with unit 1
    l= ...
while l < h:
    # check if l is prime and do stuff
    l= l+10
# end

見積もり:

私が犯したエラーは何ですか?

選択したツールであるデバッガーを使用して、自分で見つけることができます。

コードが期待どおりに動作しないか、理由がわかりません。

ほぼ普遍的な解決策があります。コードをデバッガーで段階的に実行し、変数を調べます。
デバッガーは、コードが何を行っているかを示すためにここにあり、あなたのタスクはコードが何をすべきかを比較することです。
デバッガーには魔法はありません。コードが何をすべきかはわかりません。バグを見つけることはありません。何が起こっているのかを示すことで、バグを見つけるのに役立ちます。 コードが期待どおりに動作しない場合は、バグに近づいています。
コードの動作を確認するには: ブレークポイントを設定してコードの実行を確認するだけです。デバッガーを使用すると、行を 1 行ずつ実行し、実行時に変数を調べることができます。

デバッガ – ウィキペディア (フリー百科事典)[^]

Visual Studio 2010 でのデバッグの習得 – 初心者向けガイド[^]
Visual Studio 2010 を使用した基本的なデバッグ – YouTube[^]

27.3. pdb — Python デバッガ — Python 3.6.1 ドキュメント[^]
Python でのデバッグ | Python が宇宙を征服[^]
pdb – 対話型デバッガー – 今週の Python モジュール[^]

デバッガーは、コードが何を行っているかを表示するためだけに存在し、あなたのタスクはコードが何をすべきかを比較することです。

すべての素数は定義上奇数なので、奇数で割るだけで済みます。 また、それ以上の値はすべてテスト済みであるため、平方根までの数値で除算するだけで済みます。 最後に、除算自体を無視する必要があります。 したがって、アルゴリズムは次のとおりです。

// given any number
div = 3
max = sqrt(number)
while div < max
{
    if div != number AND number % div == 0
        return // not a prime
    div = div + 2 // try next divisor
}
print "number is a prime"

リチャードが言ったことに追加するには、素数が特定の数字で終わるかどうかを調べるには、次を使用します Python モジュロ演算子[^]



Source link

コメント

タイトルとURLをコピーしました