Untitled
unknown
plain_text
a year ago
2.1 kB
8
Indexable
# Fungsi untuk memeriksa apakah suatu bilangan adalah bilangan prima
def is_prime(n):
"""
Fungsi ini menerima sebuah bilangan bulat positif n dan mengembalikan
True jika n adalah bilangan prima, dan False jika tidak.
"""
# Jika bilangan kurang dari atau sama dengan 1, maka bukan bilangan prima
if n <= 1:
return False
# Jika bilangan adalah 2 atau 3, maka bilangan tersebut adalah bilangan prima
if n <= 3:
return True
# Jika bilangan habis dibagi oleh 2 atau 3, maka bukan bilangan prima
if n % 2 == 0 or n % 3 == 0:
return False
# Memeriksa pembagian dengan bilangan dalam bentuk 6k ± 1 hingga akar dari n
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
# Jika tidak ada pembagi ditemukan, maka bilangan tersebut adalah bilangan prima
return True
# Fungsi untuk mencari bilangan prima hingga batas tertentu
def greedy_prime_search(limit):
"""
Fungsi ini menerima sebuah batas atas limit dan mencari semua bilangan prima
yang lebih kecil dari limit. Kemudian, mengembalikan daftar bilangan prima tersebut.
"""
primes = [] # Inisialisasi list kosong untuk menyimpan bilangan prima
# Melakukan iterasi melalui bilangan dari 2 hingga (limit - 1)
for num in range(2, limit):
# Memeriksa apakah bilangan saat ini adalah bilangan prima menggunakan fungsi is_prime
if is_prime(num):
primes.append(num) # Jika prima, tambahkan ke dalam list bilangan prima
return primes # Mengembalikan list bilangan prima
# Blok utama
if __name__ == "__main__":
# Meminta pengguna untuk memasukkan batas atas pencarian bilangan prima
limit = int(input("Masukkan batas atas untuk pencarian bilangan prima: "))
# Memanggil fungsi greedy_prime_search dengan batas yang diberikan
prime_numbers = greedy_prime_search(limit)
# Mencetak bilangan prima yang ditemukan dalam rentang yang ditentukan
print("Bilangan prima antara 2 dan", limit, "adalah:", prime_numbers)
Editor is loading...
Leave a Comment