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

Pythonで素数が2つの素数の合計として表現できるかどうかを確認します


素数nがあるとします。 nをx+yとして表現できるかどうかを確認する必要があります。ここで、xとyも2つの素数です。

したがって、入力がn =19の場合、19 =17 + 2

のように表現できるため、出力はTrueになります。

これを解決するには、次の手順に従います-

  • 関数isPrime()を定義します。これには数がかかります
  • 数値<=1の場合、
    • Falseを返す
  • 数値が2と同じ場合、
    • Trueを返す
  • 数値が偶数の場合、
    • Falseを返す
  • 範囲3から((数値の平方根)+ 1)の整数部分のiの場合、2ずつ増やします。
    • 数値がiで割り切れる場合、
      • Falseを返す
  • Trueを返す
  • メインの方法から次のようにします-
  • isPrime(number)とisPrime(number-2)の両方がtrueの場合、
    • Trueを返す
  • それ以外の場合、
    • Falseを返す

理解を深めるために、次の実装を見てみましょう-

from math import sqrt
def isPrime(number):
   if number <= 1:
      return False
   if number == 2:
      return True
   if number % 2 == 0:
      return False
   for i in range(3, int(sqrt(number))+1, 2):
      if number%i == 0:
         return False
   return True
def solve(number):
   if isPrime(number) and isPrime(number - 2):
      return True
   else:
      return False
n = 19
print(solve(n))

入力

19

出力

True

  1. 数値がC++で2つの三角数の合計として表現できるかどうかを確認します

    このセクションでは、1つの数を2つの三角数の合計として表現できるかどうかを確認します。三角数は以下のようになります- 例から、1、3、6、10はいくつかの三角数であることがわかります。数N(たとえば16)を2つの三角数(6、10)の合計として表す必要があります。 アプローチは非常に簡単です。 N未満のすべての三角数を取得する必要があります。これらの値からセットを作成します。ここで、集合からXと言う数を取り、N – Xが集合に存在するかどうかを確認する必要があります。そうすると、Xは2つの三角数の合計として表すことができます。 例 #include <iostream> #

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

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