Konsep bilangan prima
Bilangan prima, juga dikenal sebagai bilangan prima, mengacu pada bilangan asli yang lebih besar dari 1 yang tidak habis dibagi oleh bilangan asli lain kecuali 1 dan bilangan bulat itu sendiri (dapat juga didefinisikan sebagai bilangan yang hanya mempunyai dua faktor: 1 dan bilangan itu sendiri). ).
Bilangan prima terkecil adalah 2, yang juga merupakan satu-satunya bilangan genap di antara bilangan prima; bilangan prima lainnya semuanya bilangan ganjil. Bilangan prima itu jumlahnya tak terhingga, jadi tidak ada bilangan prima terbesar.
1: Selesaikan menurut definisi:
Ini juga merupakan cara paling bodoh dan efisiensinya rendah:
paket test.ms;public class FindPrime { // temukan bilangan prima antara 1 hingga 1000;public static void main(String[] args) { printPrime(1000);}public static void printPrime(int n){for(int i = 2; saya < n ; saya++){int hitungan = 0;untuk(int j = 2 ; j<=i; j++){if(i%j==0){count++;}if(j==i & count == 1){System.out.print(i+" ");}if(count > 1){break; }}}}}
2: Akar kuadrat:
paket test.ms;kelas publik Prime { public static void main(String[] args) {for(int j = 2; j<1000; j++){if(m(j)){System.out.print(j+" ");}}}boolean statis publik m(int num){for(int j = 2; j<=Math.sqrt(num);j++){if(num%j == 0){return salah;}}mengembalikan benar;}}
3: Temukan pola (dikutip dari diskusi forum)
Bilangan prima terkecil adalah 2, yang juga merupakan satu-satunya bilangan genap di antara bilangan prima; bilangan prima lainnya semuanya bilangan ganjil. Bilangan prima itu jumlahnya tak terhingga, jadi tidak ada bilangan prima terbesar.
paket test.ms;import java.util.ArrayList;import java.util.List;public class Primes { public static void main(String[] args) { // Temukan bilangan prima Daftar<Bilangan Bulat> bilangan prima = getPrimes(1000); // Hasil keluaran untuk (int i = 0; i < bilangan prima.ukuran(); i++) { Bilangan bulat prima = bilangan prima.get(i); System.out.printf("%8d", prime); if (i % 10 == 9) { System.out.println(); } } } /** * Temukan semua bilangan prima dalam n* * @param n Range* * @mengembalikan semua bilangan prima dalam n*/ private static List<Integer> getPrimes(int n) { List<Integer> result = new ArrayList<Integer>(); hasil.tambahan(2); untuk (int i = 3; i <= n; i += 2) { if (!dibagi(i, hasil)) { hasil.tambahan(i); ** * Tentukan apakah n habis dibagi * * @param n Bilangan yang akan dinilai * @param bilangan prima Daftar berisi bilangan prima * * @return Mengembalikan nilai benar jika n dapat habis dibagi oleh salah satu bilangan prima. */ private static boolean habis dibagi(int n, Daftar<Bilangan Bulat> bilangan prima) { for (Bilangan bulat : bilangan prima) { if (n % bilangan prima == 0) { return true;
Cara pertama dan kedua sangat sederhana:
Cara ketiga mengilustrasikan sifat-sifat bilangan prima: di antara semua bilangan prima, hanya 2 yang merupakan bilangan genap.
Suatu bilangan bukan bilangan prima jika habis dibagi bilangan prima sebelumnya.