Bilangan bulat positif lebih besar dari 1 yang tidak memiliki faktor lain kecuali 1 dan bilangan itu sendiri disebut bilangan prima. 2, 3, 5, 7 dll adalah bilangan prima karena mereka tidak memiliki faktor lain. Tapi 6 tidak prima (itu komposit) karena, 2 x 3 = 6
.
Kode sumber
# Program to check if a number is prime or not
num = 407
# To take input from the user
#num = int(input("Enter a number: "))
# prime numbers are greater than 1
if num > 1:
# check for factors
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num,"is a prime number")
# if input number is less than
# or equal to 1, it is not prime
else:
print(num,"is not a prime number")
Keluaran
407 is not a prime number 11 times 37 is 407
Dalam program ini, num variabel diperiksa apakah itu prima atau tidak. Angka kurang dari atau sama dengan 1 bukan bilangan prima. Karenanya, kami hanya melanjutkan jika num lebih besar dari 1.
Kami memeriksa apakah num persis dapat dibagi dengan angka dari 2 hingga num – 1. Jika kita menemukan faktor dalam rentang itu, jumlahnya tidak prima. Kalau tidak, angkanya prima.
Kita dapat mengurangi rentang angka tempat kita mencari faktor.
Dalam program di atas, rentang pencarian kami adalah dari 2 hingga num - 1
.
Kami bisa menggunakan rentang, range(2,num//2)
atau range(2,math.floor(math.sqrt(num)))
. Kisaran yang terakhir didasarkan pada fakta bahwa bilangan komposit harus memiliki faktor kurang dari akar kuadrat dari angka itu. Kalau tidak, angkanya prima.
Anda dapat mengubah nilai variabel num dalam kode sumber di atas untuk memeriksa apakah bilangan prima atau tidak untuk bilangan bulat lainnya.