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

nをチェックするプログラムは、Pythonではk個の素数の合計として表すことができます。


2つの入力nとkがあるとします。 nがk個の素数の合計として表現できるかどうかを確認する必要があります。

したがって、入力がn =30 k =3の場合、30は2 + 11 + 17のように表すことができるため、出力はTrueになります。

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

  • n
  • k> 2の場合、Trueを返します
  • kが2と同じ場合、
    • nが偶数の場合、Trueを返します
    • (n-2)が素数の場合、Trueを返します
    • Falseを返す
  • nが素数の場合、Trueを返します
  • Falseを返す

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

def check_prime(num):
   if num > 1:
      for i in range(2, num):
         if num % i == 0:
            return False
      return True
   return False

def solve(n, k):
   if n < k*2:
      return False
   if k > 2:
      return True
   if k == 2:
      if n%2 == 0:
         return True
      if check_prime(n-2):
         return True
      return False
   if check_prime(n):
      return True
   return False

n = 30
k = 3
print(solve(n, k))

入力

30, 3

出力

True

  1. 数値が素数かどうかをチェックする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

  2. 文字列が回文であるかどうかをチェックするPythonプログラム

    文字列が与えられた場合、私たちのタスクは、この文字列が回文であるかどうかを確認することです。 アルゴリズム Step1: Enter string as an input. Step2: Using string slicing we reverse the string and compare it back to the original string. Step3: Then display the result. サンプルコード my_string=input("Enter string:") if(my_string==my_string[::-1]): &nbs