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

数値が2つの素数の合計として表現できるかどうかをチェックするJavaプログラム


この記事では、数が2つの素数の合計として表現できるかどうかを確認する方法を理解します。素数は、1とそれ自体が2つしかない特殊な数であり、他の数で割ることはできません。

唯一の因数が1である場合、その数は素数です。 11は素数です。その因数は1と11そのものです。素数の例としては、2、3、5、7、11、13などがあります。 2は唯一の偶数の素数です。他のすべての素数は奇数です。

以下は同じのデモンストレーションです-

入力

入力が-

であると仮定します
Input number : 43

出力

必要な出力は-

になります
The number can be expressed as sum of two prime numbers.
The possible solutions are :
43 = 2 + 41

アルゴリズム

Step 1 - START
Step 2 - Declare two integer values namely my_input and i
Step 3 - Read the required values from the user/ define the values
Step 4 - Define a function IsPrime which takes an integer value and checks if the value is a prime number or not.
Step 5 - Using a for loop, iterate from 2 to half of ‘my_input’ value, check if the ‘i’ value and ‘my_input’ – ‘i’ values are both prime numbers. If yes, store both the values.
Step 6 - Display the result
Step 7 - Stop

例1

ここでは、プロンプトに基づいてユーザーが入力を入力しています。この例は、コーディンググラウンドツールでライブで試すことができます 数値が2つの素数の合計として表現できるかどうかをチェックするJavaプログラム

import java.util.Scanner;
public class SumOfPrimes {
   public static void main(String[] args) {
      int my_input, i;
      boolean my_temp = false;
      my_input = 43;
      System.out.println("Required packages have been imported");
      Scanner my_scanner = new Scanner(System.in);
      System.out.println("A reader object has been defined ");
      System.out.print("Enter the number : ");
      my_input = my_scanner.nextInt();
      for (i = 2; i <= my_input / 2; ++i) {
         if (IsPrime(i)) {
            if (IsPrime(my_input - i)) {
               System.out.println("The number can be expressed as sum of two prime numbers.");
               System.out.println("The possible solutions are :");
               System.out.printf("%d = %d + %d\n", my_input, i, my_input - i);
               my_temp = true;
             }
         }
      }
      if (!my_temp)
         System.out.println(my_input + " cannot be expressed as the sum of two prime numbers.");
   }
   static boolean IsPrime(int num) {
      boolean my_prime = true;
      for (int i = 2; i <= num / 2; ++i) {
         if (num % i == 0) {
            my_prime = false;
            break;
          }
      }
      return my_prime;
   }
}

出力

Required packages have been imported
A reader object has been defined
Enter the number : 43
The number can be expressed as sum of two prime numbers.
All the possible solutions are :
43 = 2 + 41

例2

ここでは、整数は事前に定義されており、その値にアクセスしてコンソールに表示されます。

public class SumOfPrimes {
   public static void main(String[] args) {
      int my_input, i;
      boolean my_temp = false;
      my_input = 43;
      System.out.println("The number is defined as " +my_input);
      for (i = 2; i <= my_input / 2; ++i) {
         if (IsPrime(i)) {
            if (IsPrime(my_input - i)) {
               System.out.println("The number can be expressed as sum of two prime numbers.");
               System.out.println("The possible solutions are :");
               System.out.printf("%d = %d + %d\n", my_input, i, my_input - i);
               my_temp = true;
            }
         }
      }
      if (!my_temp)
         System.out.println(my_input + " cannot be expressed as the sum of two prime numbers.");
   }
   static boolean IsPrime(int num) {
      boolean my_prime = true;
      for (int i = 2; i <= num / 2; ++i) {
         if (num % i == 0) {
            my_prime = false;
            break;
         }
      }
      return my_prime;
   }
}

出力

The number is defined as 43
The number can be expressed as sum of two prime numbers.
All the possible solutions are :
43 2 + 41

  1. 数値がC++で2つの豊富な数値の合計として表現できるかどうかを確認します

    番号があるとします。これを2つの過剰数の合計として表す必要があります。はいの場合は数値を出力し、そうでない場合は-1を出力します。数は過剰数と呼ばれ、その数のすべての適切な除数の合計であり、sum(n)は数の値よりも大きいことで示されます。 これを解決するために、すべての過剰数をセットに格納し、指定された数nに対して、i =1からnのループを実行し、nと(n – i)が過剰かどうかを確認します。 例 #include <iostream> #include <set> #define N 100005 using namespace std; set<int&g

  2. 数値がC++で2つの三角数の合計として表現できるかどうかを確認します

    このセクションでは、1つの数を2つの三角数の合計として表現できるかどうかを確認します。三角数は以下のようになります- 例から、1、3、6、10はいくつかの三角数であることがわかります。数N(たとえば16)を2つの三角数(6、10)の合計として表す必要があります。 アプローチは非常に簡単です。 N未満のすべての三角数を取得する必要があります。これらの値からセットを作成します。ここで、集合からXと言う数を取り、N – Xが集合に存在するかどうかを確認する必要があります。そうすると、Xは2つの三角数の合計として表すことができます。 例 #include <iostream> #