Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでプライムするかどうか


素数は、暗号化などの多くのアプリケーションで中心的な役割を果たします。そのため、さまざまなアプリケーションでPythonプログラムを使用して素数をチェックする必要があります。素数とは、それ自体以外の要素を持たない数のことです。以下に、与えられた数が素数であるかどうかを調べることができるプログラムを示します。

アプローチ

数が素数であるかどうかを判断するために、次のアプローチを取ります。

  • 最初のチェックはポジティブかどうか。正の数だけが素数になることができるので。

  • 数値を、指定された数値より2から1少ない数値の範囲内のすべての数値で除算します。

  • この範囲のいずれかの数値の余りがゼロになる場合、それは素数ではありません。

x = 23
if x > 1:
   for n in range(2, x):
      if (x % n) == 0:
         print(x, "is not prime")
         print(n, "times", x // n, "is", x)
         break
   else:
      print(x, "is a prime number")
   else:
      print(x, "is not prime number")

出力

上記のコードを実行すると、次の結果が得られます-

23 is a prime number

フォーム6i+1の確認

6より大きいすべての素数は、6i+1の形式で表すことができます。ここで私は1から始めて、整数として進みます。以下の例では、6を分割し、リマインダーを1つとしてチェックすることにより、番号を6i+1の形式で表示できるかどうかを確認します。したがって、数が素数であるかどうかを決定します。また、与えられた数の平方根に等しいi値をチェックする必要があります。

def CheckPrime(n):
   # Check for cases of 2 and 3
   if (n <= 1):
      return False
   if (n <= 3):
      return True
   # skip checking middle five numbers in the loop
   if (n % 2 == 0 or n % 3 == 0):
      return False
   i = 5
   while (i * i <= n):
      if (n % i == 0 or n % (i + 2) == 0):
         return False
      i = i + 6
   return True
# Check for inputs
if (CheckPrime(31)):
   print(" true")
else:
   print(" false")
if (CheckPrime(25)):
   print(" true")
else:
   print(" false")

出力

上記のコードを実行すると、次の結果が得られます-

true
false

  1. PythonでNが二面素数であるかどうかを確認します

    数nがあるとします。 nが二面素数であるかどうかを確認する必要があります。数自体が素数であり、ディスプレイの向き(通常または上下逆)に関係なく、7セグメントディスプレイを使用して同じ数または他の素数が表示される場合、その数は二面素数であると言われます。 したがって、入力がn =1181のような場合、出力はTrueになります 2つ目は、1つ目の逆さまの形式で、どちらも素数です。 これを解決するには、次の手順に従います- 関数up_side_down()を定義します。これにはnがかかります temp:=n、total:=0 0の場合、do d:=temp mod 10

  2. 素数をチェックするPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数が与えられているので、与えられた数が素数であるかどうかを確認する必要があります。 1より大きい特定の正の数で、1以外の要素はなく、その数自体は素数と呼ばれます。 2、3、5、7などは他の要素がないため素数です。 以下のこのプログラムでは、素数または非素数の性質について番号がチェックされます。 1以下の数は素数とは言えません。したがって、数値が1より大きい場合にのみ反復します。 ここで、その数が2から(num-1 // 2)の範囲の任意の数で正確に割り切れるかどうかを確認します。指定された範囲内に何ら