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

最小数の最初と最後の桁がPythonで素数を形成するかどうかを確認します


数字のみを含むdigitsという配列があるとします。与えられた数字から可能な最小の数を見つけ、生成された数の最初と最後の桁をとってその数が素数であるかどうかを確認する必要があります。数自体を印刷してから素数を印刷します。

したがって、入力がdigits =[5,2,1,7]のような場合、出力は1257が最小の数値になります。最初と最後の桁をとった数字は17と71で、どちらも素数です。

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

  • Digits_freq:=数字の頻度を含むマップ
  • 数値:=空白の文字列
  • 0から9の範囲のiについては、
    • 0からdigits_freq[i]-1の範囲のjの場合、do
      • 数値:=数値連結桁i
  • num:=数値の最初と最後の桁を取ることによる数値
  • rev:=数値の最後と最初の桁を取ることによる数値
  • numが素数で、revが素数の場合、
    • 数値、数値、回転数を返す
  • それ以外の場合、numが素数の場合、
    • 返品番号、番号
  • それ以外の場合、revが素数の場合、
    • 返品番号、リビジョン
  • それ以外の場合、
    • Falseを返す

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

サンプルコード

from collections import defaultdict
 
def isPrime(num):
   if num > 1:
      for i in range(2, num):
         if num % i == 0:
           return False
      return True
   return False
 
def solve(arr):
   digits_freq = defaultdict(int)

   for i in range(len(arr)):
      digits_freq[arr[i]] += 1
 
   number = ""
   for i in range(0, 10):
      for j in range(digits_freq[i]):
         number += str(i)
       
   num = int(number[0] + number[-1])
   rev = int(number[-1] + number[0])
 
   if isPrime(num) and isPrime(rev):
      return int(number), num, rev
   elif isPrime(num):
      return number, num
   elif isPrime(rev):
      return number, rev
   else:
      return False
   
digits = [5,2,1,7]
print(solve(digits))

入力

[5,2,1,7]

出力

(1257, 17, 71)

  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)の範囲の任意の数で正確に割り切れるかどうかを確認します。指定された範囲内に何ら