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

与えられた数がPythonでワグスタッフ素数であるかどうかを確認します


数nがあるとします。 nがワグスタッフ素数であるかどうかを確認する必要があります。ご存知のように、ワグスタッフ素数は次の形式の素数です。

与えられた数がPythonでワグスタッフ素数であるかどうかを確認します

ここで、qは奇数の素数です。

したがって、入力がn =683のような場合、出力はTrueになります。nは次のように表すことができます

与えられた数がPythonでワグスタッフ素数であるかどうかを確認します

したがって、ここでq=11です。qは奇数の素数です。

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

  • numが素数で、(num * 3-1)も素数の場合、
    • Trueを返す
  • Falseを返す

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

サンプルコード

def isPrime(num):
   if num > 1:
      for i in range(2, num):
         if num % i == 0:
           return False
      return True
   return False
   
def power_of_two(num):
   return num and not(num & (num - 1))

def solve(num) : 
   if isPrime(num) and power_of_two(num * 3-1): 
      return True
   return False

n = 683
print(solve(n))

入力

683

出力

True

  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を使用して数値が素数であるかどうかを確認するにはどうすればよいですか?

    この問題の次の解決策で使用される原則は、与えられた数を3からすべての平方根で割ることです。数の平方根は可能な最大の要因であり、それを超えると、それをチェックする必要はありません。は他の数で割り切れて、素数であると判断します。 この関数は、2で割り切れる2未満のすべての数値に対してfalseを返します。その他の場合、すべての戻り値)関数は、平方根までの任意の数値で割り切れる場合はfalseになり、そうでない場合はtrueになります。任意の数で割り切れる 例 def is_prime(a):     if a < 2: