PythonでNが二面素数であるかどうかを確認します
数nがあるとします。 nが二面素数であるかどうかを確認する必要があります。数自体が素数であり、ディスプレイの向き(通常または上下逆)に関係なく、7セグメントディスプレイを使用して同じ数または他の素数が表示される場合、その数は二面素数であると言われます。
したがって、入力がn =1181のような場合、出力はTrueになります
2つ目は、1つ目の逆さまの形式で、どちらも素数です。
これを解決するには、次の手順に従います-
- 関数up_side_down()を定義します。これにはnがかかります
- temp:=n、total:=0
- temp>
0の場合、do
- d:=temp mod 10
- dが2と同じ場合、d:=5
- それ以外の場合、dが5と同じ場合、d:=2
- 合計:=合計* 10 + d
- temp:=(temp / 10)の商
- 合計を返す
- メインの方法から次の手順を実行します。
- nが素数でないか、up_side_down(n)が素数でないか、nの逆が素数でないか、up_side_down(n)の逆が素数でない場合、
- Falseを返す
- temp:=n
- temp>
0の場合、do
- rem:=temp mod 10
- remがこれらのいずれかである場合[3、4、6、7、9]、
- Falseを返す
- temp:=(temp / 10)の商
- Trueを返す
理解を深めるために、次の実装を見てみましょう-
サンプルコード
prime = (int(1e5)+5)*[True] def reverse(n): return int(str(n)[::-1]) def up_side_down(n): temp = n total = 0 while temp>0: d = temp % 10 if d == 2: d = 5 elif d == 5: d = 2 total = total * 10 + d temp//= 10 return total def get_all_prime(): prime[0] = prime[1] = False for i in range(2, int(1e5)+1): j = 2 while i * j<= int(1e5): prime[i * j] = False j+= 1 def solve(n): get_all_prime() if not prime[n] or not prime[up_side_down(n)] or not prime[reverse(n)] or not prime[reverse(up_side_down(n))]: return False temp = n while temp>0: rem = temp % 10; if rem in [3, 4, 6, 7, 9]: return False temp //= 10 return True n = 1181 print(solve(n))
入力
23, 3
出力
True
-
素数をチェックするPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数が与えられているので、与えられた数が素数であるかどうかを確認する必要があります。 1より大きい特定の正の数で、1以外の要素はなく、その数自体は素数と呼ばれます。 2、3、5、7などは他の要素がないため素数です。 以下のこのプログラムでは、素数または非素数の性質について番号がチェックされます。 1以下の数は素数とは言えません。したがって、数値が1より大きい場合にのみ反復します。 ここで、その数が2から(num-1 // 2)の範囲の任意の数で正確に割り切れるかどうかを確認します。指定された範囲内に何ら
-
数値が素数かどうかをチェックするPythonプログラム
ここでは、1より大きい指定された数が素数であるかどうかをテストするプログラムを作成します。 素数は1より大きい正の整数であり、2つの因子1と、その数自体(たとえば、数:2、3、5、7…など)は2つの因子しかないため、素数です。 1と番号自体。 # Python program to check if the input number is prime or not #Take input from the user num = int(input("Please enter the number: ")) #Check if the given number is gre