Python ile Asal Sayılar

Bildiğiniz gibi asal sayılar, sadece kendisine tam bölünebilen sayılardır. Bilgisayarların işlem gücünden yararlanarak en büyük asal sayıyı bulma çabaları durmadan devam ediyor. Sayılar büyüdükçe asal olup olmadığını bulmak daha da zorlaşıyor.

Bu örnek en basit haliyle, performans kaygısı gütmeden, klavyeden girilen sayının asal sayı olup olmadığını buluyor.

sayi=int(input("Test edilecek sayıyı giriniz:"))
asalmi=0
for i in range(2,sayi):
    if sayi%i==0:
        asalmi=1
        break

if asalmi==0:
    print (sayi, " sayısı asaldır.")
else:
    print (sayi," sayısı asal değildir.")

Kodları kısaca incelersek klavyeden girilen sayıyı for döngüsü ile 2’den başlayarak kendisinden bir küçük sayıya kadar olan bütün sayılara bölerek asal olup olmadığı sonucuna ulaşılıyor. Eğer bölme işlemlerinden bir tanesi 0 kalanını verirse asalmi değişkeninin değeri 1 yapılıp sonraki sayılara bakılmadan break ile döngüden çıkılıyor. Döngü bittikten sonra asalmi değişkenin değeri kontrol edilerek değeri 0 ise sayının asal olduğu sonucuna ulaşılıyor.

Aşağıdaki örnek uygulamada ise klavyeden girilen sayıya kadar olan bütün asal sayılar listeleniyor. Girilen sayı büyüdükçe programın çalışma süresi uzayacaktır.

sayi=int(input("Kaça kadar olan asal sayılar:"))
if sayi<2:
  print("En küçük asal sayı 2'dir.")
else:  
  print(2)
  for i in range(3,sayi):
    asalmi=0
    for j in range(2,i):
      if i%j==0:
        asalmi=1
        break
    if asalmi==0:
      print (i)