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

与えられた3つの数がPythonで隣接する素数であるかどうかを確認します


3つの数があり、それらが隣接する素数であるかどうかを確認する必要があるとします。隣接する素数は、それらの間に他の素数が存在しない素数です。

したがって、入力がnums =[5,7,11]のような場合、出力はTrueになります。

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

  • これら3つの数字のいずれかが素数でない場合
    • Falseを返す
  • xの次の素数がyと同じでない場合、
    • Falseを返す
  • yの次の素数がzと同じでない場合、
    • Falseを返す
  • Trueを返す

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

サンプルコード

def isPrime(num):
   if num > 1:
      for i in range(2, num):
         if num % i == 0:
           return False
      return True
   return False
   
def get_next_prime(num) :
   next_prime = num + 1
   while not isPrime(next_prime):
      next_prime += 1
   return next_prime
 
def solve(x, y, z) :
   if isPrime(x) == False or isPrime(y) == False or isPrime(z) == False :
      return False
 
   next_prime = get_next_prime(x)
   if next_prime != y:
      return False
 
   if get_next_prime(y) != z:
      return False
 
   return True

nums = [5,7,11]
print(solve(*nums))

入力

[5,7,11]

出力

True

  1. 与えられたブロックのリストがPythonでx=y行に対して対称であるかどうかをチェックするプログラム

    numsという番号のリストがあるとします。そして、それは正方形のブロックの高さを表しています。形状がy=xの線上で対称であるかどうかを確認する必要があります。 したがって、入力がnums =[7、5、3、2、2、1、1]のような場合、出力はTrueになります これを解決するには、次の手順に従います。 i:=0 j:=numsのサイズ-1 i <=jの場合、do h:=nums [j] i

  2. 与えられたグラフがPythonで2部グラフであるかどうかをチェックするプログラム

    無向グラフが1つあるとすると、グラフが2部グラフであるかどうかを確認する必要があります。グラフのすべてのエッジ{u、v}がAに1つのノードuを持ち、Bに別のノードvを持つように、グラフのノードを2つのセットAとBに分割できる場合、グラフは2部グラフであることがわかります。 したがって、入力が次のような場合 次に、出力はTrueになり、[0,4]はセットAにあり、[1,2,3]はセットBにあり、すべてのエッジはAからAまたはBからBではなく、AからBまたはBからAになります。 。 これを解決するために、次の手順に従います- 関数dfs()を定義します。これはソースを取ります