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

Pythonで隣接する桁の絶対差の合計が素数であるかどうかを確認します


数nがあるとします。隣接する数字のペアの絶対差の合計が素数であるかどうかを確認する必要があります。

したがって、入力がn =574のような場合、出力は|5-7|のようにTrueになります。 + | 7-4 | =5、これはプライムです。

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

  • num_str:=n as string
  • 合計:=0
  • 範囲1からnum_str-1のサイズのiの場合、do
    • total:=total+|桁num_str[i-1]-桁num_str[i]|
  • 合計が素数の場合、
    • 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 solve(n):
   num_str = str(n)
   total = 0
   for i in range(1, len(num_str)):
      total += abs(int(num_str[i - 1]) - int(num_str[i]))
        
   if isPrime(total):
      return True
   return False
      
n = 574
print(solve(n))

入力

574

出力

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で隣接するノードが同じ色を持たないツリーに色を付けることができるかどうかを確認するプログラム

    各ノードの値がその色を表す二分木があるとします。木にはせいぜい2色しかありません。接続されている2つのノードが同じ色にならないように、ノードの色を何度でも交換できるかどうかを確認する必要があります。 したがって、入力が次のような場合 そうすれば、出力はTrueになります これを解決するには、次の手順に従います- 色:=空の地図 prop:=空のマップ 関数dfs()を定義します。これはノードを取り、フラグを立てます ノードがnullの場合、 戻る 色[ノードの値]:=色[ノードの値] + 1 prop [flag]:=prop [flag] + 1 dfs(