ในบทความนี้ เราจะเข้าใจวิธีการตรวจสอบว่าจำนวนหนึ่งสามารถแสดงเป็นผลรวมของจำนวนเฉพาะสองตัวได้หรือไม่ จำนวนเฉพาะคือจำนวนพิเศษที่มีตัวประกอบเพียงสองตัวคือ 1 และตัวมันเอง และไม่สามารถหารด้วยหมายเลขอื่นได้
ตัวเลขเป็นจำนวนเฉพาะหากมีตัวประกอบเพียงตัวเดียวคือ 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
ที่นี่ ผู้ใช้ป้อนอินพุตตามข้อความแจ้ง คุณสามารถลองใช้ตัวอย่างนี้ในเครื่องมือกราวด์ของเรา .
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