Jika nombor boleh dinyatakan sebagai penambahan dua pasangan nombor perdana ganjil, maka nombor itu dipanggil nombor Goldbach.
Jika kita mengikut syarat di atas, maka kita boleh dapati setiap nombor genap yang lebih besar daripada 4 adalah nombor Goldbach, kerana ia mesti mempunyai sebarang pasangan nombor perdana ganjil. Tetapi nombor ganjil adalah tidak memuaskan kerana kita tahu bahawa jumlah dua nombor tidak boleh menjadi ganjil.
Dalam artikel ini, kita akan belajar cara menyemak sama ada nombor adalah nombor Goldbach menggunakan bahasa pengaturcaraan Java.
Masukkan nombor sebagai 50.
Mari kita semak menggunakan logik nombor Goldbach.
Mencari pasangan nombor perdana ganjil, kami mendapat:
(3 , 47) (7 , 43) (13 , 37) (19 , 31)
Seperti yang kita perhatikan di sini, kita mendapat beberapa pasangan nombor perdana ganjil yang nilai tambahnya bersamaan dengan 50.
Oleh itu, 50 adalah nombor Goldbach.
Masukkan nombor sebagai 47.
Mari kita uji menggunakan logik nombor Goldbach.
Mencari pasangan perdana ganjil, kami mendapat − Tiada pasangan perdana tersedia
Seperti yang kita perhatikan di sini, kita tidak mendapat pasangan perdana ganjil yang jumlahnya bersamaan dengan 47.
Oleh itu, 47 bukan nombor Goldbach.
Beberapa contoh nombor Goldbach yang lain termasuk 20, 52, 48, 122, dsb.
Langkah 1 - Dapatkan integer melalui permulaan atau input pengguna.
Langkah 2 - Kemudian isytiharkan dua tatasusunan yang menyimpan nombor perdana secara berturutan.
Langkah 3 - Kemudian mulakan lelaran di mana dua pasangan nombor perdana ganjil akan ditemui daripada dua tatasusunan, yang penambahannya adalah sama dengan nombor input.
Langkah 4 - Jika kita tidak mendapat sebarang pasangan nombor perdana ganjil, maka kita boleh mencetak bahawa nombor yang diberikan bukan nombor Goldbach.
Langkah 5 - Jika kita mendapat beberapa pasangan, maka kita hanya mencetak pasangan tersebut bersama-sama dengan mesej yang terhasil bahawa nombor input ialah nombor Goldbach.
Kami menyediakan penyelesaian dengan cara yang berbeza.
Dengan menggunakan nilai input statik
Dengan menggunakan kaedah yang ditentukan pengguna
Mari kita lihat program dan outputnya satu persatu.
Dalam kaedah ini nilai integer akan dimulakan dalam atur cara dan kemudian dengan menggunakan algoritma kita boleh menyemak sama ada nombor adalah nombor Goldbach.
import java.io.*; import java.util.*; public class Main { public static void main(String args[]) { //declare all the variables int i, j, n, temp, b=0, c=0, sum=0; //declare a variable which stores the input number //assign a value to it int inputNumber=30; //declare a temporary variable which stores the input value temp=inputNumber; //declare two arrays with the capacity equal to input number int array1[]=new int[inputNumber]; int array2[]=new int[inputNumber]; //check whether the number is even or if(inputNumber%2!=0) { //if the input is not even then print it is not a Goldbach number System.out.println(inputNumber + " is not a Goldbach number."); } //if the input is even then proceed with further calculations else { //initiate the loop for finding the prime numbers for(i=1; i<=inputNumber; i++) { for(j=1; j<=i; j++) { if(i%j==0) { c++; } } //find the odd prime numbers if((c==2)&&(i%2!=0)) { //stores odd prime numbers into first array array1[b]=i; //stores odd prime numbers into second array array2[b]=i; //increments the value of b by 1 b++; } c=0; } //print the odd prime number pairs System.out.println("Odd Prime Pairs are: "); //loop for printing the value of ArrayStoreException for(i=0; i<b; i++) { for(j=i; j<b; j++) { //find the sum of two odd prime numbers sum=array1[i]+array2[j]; //condition for comparing the sum value with input number if(sum==temp) { //print pair of odd prime numbers System.out.print("(" + array1[i]+" , "+array2[j] + ")"); System.out.println(); } } } //print the final result if it is Goldbach number System.out.println(temp+" is a Goldbach number."); } } }
Odd Prime Pairs are: (7 , 23) (11 , 19) (13 , 17) 30 is a Goldbach number.
Dalam kaedah ini, nilai integer dimulakan dan kemudian kami memanggil kaedah yang ditentukan pengguna dengan menghantar nombor input ini sebagai parameter.
Dalam kaedah ini kita akan menggunakan algoritma untuk menyemak sama ada nombor adalah nombor Goldbach.
import java.io.*; import java.util.*; public class Main { public static void main(String args[]) { //declare a variable which stores the input number //assign a value to it int inp=98; if(checkGoldbach(inp)) { //if true it is Goldbach number System.out.println(inp+" is a Goldbach number."); } else { //if false it is not a Goldbach number System.out.println(inp + " is not a Goldbach number."); } } //define the user defined method static boolean checkGoldbach(int inputNumber) { //declare all the variables int i, j, n, temp, b=0, c=0, sum=0; //declare a temporary variable which stores the input value temp=inputNumber; //declare two arrays with the capacity equal to input number int array1[]=new int[inputNumber]; int array2[]=new int[inputNumber]; //check whether the number is even or if(inputNumber%2!=0) { return false; } //if the input is even then proceed with further calculations else { //initiate the loop for finding the prime numbers for(i=1; i<=inputNumber; i++) { for(j=1; j<=i; j++) { if(i%j==0) { c++; } } //find the odd prime numbers if((c==2)&&(i%2!=0)) { //stores odd prime numbers into first array array1[b]=i; //stores odd prime numbers into second array array2[b]=i; //increments the value of b by 1 b++; } c=0; } //print the odd prime number pairs System.out.println("Odd Prime Pairs are: "); //loop for printing the value of Arrays for(i=0; i<b; i++) { for(j=i; j<b; j++) { //find the sum of two odd prime numbers sum=array1[i]+array2[j]; //condition for comparing the sum value with input number if(sum==temp) { //print pair of odd prime numbers System.out.print("(" + array1[i]+" , "+array2[j] + ")"); System.out.println(); } } } return true; } } }
Odd Prime Pairs are: (19 , 79) (31 , 67) (37 , 61) 98 is a Goldbach number.
Dalam artikel ini, kami melihat cara menyemak sama ada nombor adalah nombor Goldbach di Jawa menggunakan tiga kaedah berbeza.
Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada nombor adalah nombor Goldbach di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!