Jika bilangan asli lebih besar dari 1 dan tidak memiliki pembagi positif selain 1 dan bilangan itu sendiri, dst Show
Sebagai contoh. 3, 7, 11 dst adalah bilangan prima Angka komposit Bilangan asli lain yang bukan bilangan prima disebut bilangan komposit Misalnya. 4, 6, 9 dst. adalah bilangan komposit Mari kita lihat contoh berikut untuk memahami implementasinya ContohKeluaran Enter an input number:17 17 is a prime number Penjelasan Kami telah menggunakan kondisi if else bersarang untuk memeriksa apakah bilangan tersebut bilangan prima atau bukan Pertama, kami telah memeriksa apakah angka yang diberikan lebih besar dari 1 atau tidak. Jika tidak lebih besar dari 1, maka angka tersebut akan langsung menuju ke bagian lain dan mencetak 'bukan bilangan prima. ' Sekarang, angka tersebut akan masuk ke dalam for loop dimana kita melakukan Iterasi dari 2 ke angka/2. Kemudian, kami menggunakan kondisi if else bersarang di dalam for loop. Jika bilangan tersebut benar-benar habis dibagi oleh 'i', maka itu bukanlah bilangan prima; Jika Anda pernah mengikuti tes pengkodean, Anda akan menemukan pertanyaan matematika pada tes keutamaan atau untuk memeriksa apakah suatu bilangan prima. Dan selama beberapa menit berikutnya, Anda akan belajar menemukan solusi optimal untuk pertanyaan ini Dalam tutorial ini, Anda akan
Untuk semua ini dan lebih banyak lagi, mari kita mulai Apa itu Bilangan Prima?Mari kita mulai dengan meninjau dasar-dasar bilangan prima
Tabel berikut mencantumkan beberapa angka, semua faktornya, dan jika bilangan prima nFaktor adalah Prima?11Tidak21, 2Ya31, 3Ya41, 2, 4No71, 7Ya151, 3, 5, 15TidakDari tabel di atas, kita dapat menuliskan yang berikut ini
Jadi 1 dan n adalah faktor sepele untuk sembarang bilangan n. Dan bilangan prima seharusnya tidak memiliki faktor selain keduanya Ini berarti bahwa ketika Anda beralih dari 2 ke n – 1, Anda seharusnya tidak dapat menemukan faktor nontrivial yang membagi n tanpa sisa O(n) Algoritma untuk Memeriksa apakah suatu Angka adalah Prima dengan PythonPada bagian ini, mari kita meresmikan pendekatan di atas ke dalam fungsi Python Anda dapat mengulang semua angka dari 2 hingga n – 1 menggunakan objek
Karena kita membutuhkan himpunan bilangan bulat dari 2 sampai n-1, kita dapat menentukan 4 dan menggunakannya bersamaan dengan 5 loopInilah yang ingin kami lakukan
Fungsi Python untuk Memeriksa Bilangan PrimaDengan menggunakan di atas, kita dapat melanjutkan dan mendefinisikan fungsi 6 sebagai berikut _Sekarang mari kita parsing definisi fungsi di atas
Selanjutnya, mari kita panggil fungsi dengan argumen dan verifikasi apakah hasilnya benar _Pada output di atas, Anda melihat bahwa 2 dan 11 adalah bilangan prima (fungsi mengembalikan 9). Dan 8 dan 9 bukan bilangan prima (fungsi mengembalikan 8)Cara Mengoptimalkan Fungsi Python is_prime()Kami dapat melakukan pengoptimalan kecil di sini. Perhatikan daftar faktor pada tabel di bawah ini NumberFactors61, 2, 3, 6101, 2, 5, 10181, 2, 3, 6, 9, 18
Jadi ini berarti Anda tidak perlu mengulang sampai n - 1. Anda malah dapat menjalankan loop hanya hingga n/2 Jika Anda tidak menemukan faktor non-trivial hingga n/2, Anda juga tidak dapat menemukannya di luar n/2 Sekarang mari kita ubah fungsi _6 untuk memeriksa faktor dalam rentang (2, n/2)
Mari lanjutkan dan verifikasi output melalui beberapa pemanggilan fungsi
Meskipun sepertinya kami telah mengoptimalkan, algoritme ini tidak lebih efisien daripada yang sebelumnya dalam hal kompleksitas runtime. Faktanya, keduanya memiliki kompleksitas runtime O(n). sebanding dengan nilai n atau linier dalam n Bisakah kita berbuat lebih baik? ▶️ Lanjutkan ke bagian selanjutnya untuk menentukan cara meningkatkan kompleksitas waktu untuk pengujian bilangan prima O(√n) Algoritma untuk Memeriksa Bilangan Prima dengan PythonKebetulan faktor-faktor suatu bilangan berpasangan
Mari kita verifikasi ini melalui sebuah contoh Tabel di bawah ini menunjukkan faktor-faktor dari angka 18 yang terjadi secara berpasangan. Anda dapat memverifikasi hal yang sama untuk beberapa nomor lagi jika Anda mau Perhatikan juga bahwa √18 kira-kira sama dengan 4. 24 Dan pada faktor-faktor yang berpasangan (a,b), Anda dapat melihat bahwa jika a kurang dari 4. 24, maka b lebih besar dari 4. 24—dalam contoh ini, (2, 18) dan (3, 6) Faktor dari 18 berpasanganGambar di bawah menunjukkan faktor dari 18 yang diplot pada garis bilangan Jika angka n merupakan kuadrat sempurna, Anda akan memiliki a = b = √n sebagai salah satu faktornya ▶️ Perhatikan faktor dari 36 pada tabel di bawah ini. Karena 36 adalah kuadrat sempurna, a = b = 6 adalah salah satu faktornya. Untuk semua pasangan faktor lainnya (a, b), berlaku a < 6 dan b > 6 Kesimpulannya, kami memiliki yang berikut ini
Jadi alih-alih mengulang semua bilangan bulat hingga n/2, Anda dapat memilih untuk menjalankan hingga √n. Dan ini jauh lebih efisien daripada pendekatan kami sebelumnya Cara Memodifikasi Algoritma is_prime() menjadi O(√n).Mari lanjutkan untuk mengoptimalkan fungsi untuk memeriksa bilangan prima dengan Python
Sekarang, mari kita parsing definisi fungsi di atas
Sel kode di bawah memverifikasi bahwa fungsi kami 6 berfungsi dengan benar
Di bagian selanjutnya, mari kita buat beberapa plot sederhana untuk memahami O(n) dan O(√n) secara visual Membandingkan O(n) dan O(√n) Secara Visual▶️ Jalankan cuplikan kode berikut di lingkungan notebook Jupyter pilihan Anda
Cuplikan di atas menunjukkan bagaimana Anda dapat memplot kurva untuk n dan √n untuk rentang nilai
Dari plot di bawah ini, kita melihat bahwa √n secara signifikan lebih kecil dari n Sekarang mari kita tingkatkan jangkauan hingga setinggi 2000 dan ulangi langkah yang sama seperti di atas _Dari plot di atas, Anda dapat menyimpulkan bahwa algoritme O(√n) secara signifikan lebih cepat saat Anda menguji jika bilangan besar adalah bilangan prima. Ini contoh singkatnya. 2377 adalah bilangan prima—buktikan ini. 😀 Sementara pendekatan O(n) akan mengambil urutan 2000 langkah, algoritma O(√n) dapat membantu sampai pada jawaban hanya dalam 49 langkah. ✅ Kesimpulan⏳ Dan saatnya untuk ringkasan singkat
Saya harap Anda mengerti cara memeriksa apakah suatu bilangan prima dengan Python. Sebagai langkah selanjutnya, Anda dapat melihat tutorial kami tentang program Python tentang operasi string—tempat Anda akan belajar memeriksa apakah string adalah palindrom, anagram, dan lainnya Bagaimana Anda membuat pencari bilangan prima dengan Python?Untuk menemukan bilangan prima dengan Python, Anda harus mengulang nilai dari awal hingga akhir menggunakan perulangan for dan untuk setiap angka, jika lebih besar dari 1, periksa apakah . Jika kita menemukan angka lain yang membagi, cetak nilai itu .
Bagaimana Anda membuat kode pemeriksa bilangan prima?Program untuk Mengecek Bilangan Prima
. 29 29 adalah bilangan prima. Dalam program, a for loop diulang dari i = 2 ke i < n/2 . Jika n habis dibagi dengan i , n bukan bilangan prima. Dalam hal ini, flag diset ke 1, dan loop diakhiri menggunakan pernyataan break.
Apa yang dilakukan Is_prime dengan Python?Metode isprime digunakan untuk menentukan apakah bilangan yang diberikan adalah bilangan prima atau bukan . Metode ini dimaksudkan untuk digunakan untuk bilangan bulat. Angka floating-point apa pun (angka presisi terbatas) akan menghasilkan False. Bilangan negatif tidak dianggap sebagai bilangan prima.
Bagaimana cara memeriksa apakah suatu bilangan prima dalam Python menggunakan while loop?flag = 0 n = int(input('\nMasukkan bilangan bulat untuk diperiksa. ')) i = 2 sedangkan i <= (n/2). jika (n%i) == 0. bendera = 1 istirahat i += 1 jika n == 1. print('1 bukan bilangan prima atau gabungan') bendera elif == 0. print(n,' adalah bilangan prima |